Typing Input Systems, Methods, and Devices

ABSTRACT

Systems, devices, and techniques are disclosed relating to typing input devices. For example a ten-key input device can be provided for receiving input via ten input elements from the ten fingers on a right hand and a left hand. All of the letters of the alphabet can by typed with the ten input elements according to a translation map that maps the ten input elements or combinations of the ten input elements to the letters of the alphabet.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of priority of U.S. ProvisionalApplication Ser. No. 61/486,736, Filed May 16, 2011, and entitled“Typing Input Systems, Methods, and Devices”, which is herebyincorporated by reference.

BACKGROUND

The present invention relates to systems and techniques for encoding keyassignments for keyboards and other data input devices.

The most familiar type of data input device is the QWERTY keyboard,whose key arrangement was designed primarily by Charles Latham Sholes inthe late 19th century. The original QWERTY keyboard features a singleinput key for each letter of the English alphabet and additional keysfor numbers, symbols, and punctuation. With the rise of computer use,the QWERTY keyboard layout has been expanded to include numerous modemcomputer function keys and other useful controls. It is believed thatthe QWERTY scheme was deliberately laid out with keys in impracticalpositions in order to slow down skilled typists, presumably to preventjamming of the mechanical typewriters for which it was designed. Some ofthe least commonly used letters in the English language (J and K) areplaced on the home row, and some of the most commonly used letters (E,T, O, I, and N) are not. In practice, the QWERTY layout requires awkwardpathways of finger movement to construct words and users often sufferfrom repetitive strain injuries (“RSI”) as a result of frequent andlong-term use of these keyboards.

The Dvorak keyboard was designed by August Dvorak and William L. Dealeyin the mid-1930's in an effort to maximize typing efficiency. The Dvorakkeyboard places all vowels on the home row for the left hand and themost common consonants on the home row for the right hand, thereforeallowing a user to type in more of a rhythm and minimizing the number ofawkward patterns necessary to construct words. Although the Dvorakkeyboard has become more accessible in recent years due to softwareapplications that eliminate the need for specialized hardware, theDvorak keyboard has never achieved a high level of commercial success,and the QWERTY layout has remained the dominant standard for wordprocessing and other applications.

With the introduction of cellphones and other handheld computing devicesthat allow text messaging (and more recently, for email and other uses),new input systems have become popular. For cellphones, the E.161 schemewas used to allow access to all 26 letters of the alphabet using thenumbers 2-9 of a standard 12-key telephone keypad. The multi-tapapproach (pressing a key repeatedly to cycle through the letter options)has been refined to include predictive texting (such as T-9) and otherfeatures, but still remains a cumbersome method of typing messages.

More modem touch-screen devices have increased the number of options,including an on-screen QWERTY keyboard and other methods of inputtingtext (handwriting recognition, Swype, SlideID, Shapewriter, etc.) butmany users still prefer the QWERTY keyboard and many modem phones andPDA's are manufactured to include a physical keyboard for use with thedevice. Such keyboards are usually designed to be actuated by the user'sthumbs, and typing speeds rarely exceed 40 words per minute, even forproficient users. Furthermore, most of these methods normally requirethe user to visually monitor the input source, preventing users from“touch-typing” and entering text and other data while the eyes arefocused on other things.

Chord keyboards are known in the art and include between five and twelvekeys. Most chord keyboards are designed so that either individual keysor combinations of multiple keys (chords) can be used to generate the 26letters of the English alphabet as well as numeric and punctuationcharacters and function keys.

SUMMARY

This disclosure relates to systems and techniques for encoding keyassignments for keyboards and other data input devices, such as inputdevices with a ten-key layout. For example, an input device can have teninput keys, one for each of the ten fingers on a right hand and a lefthand. All twenty-six letters of the alphabet can be mapped to inputsreceived from one or more of the ten input keys. Numbers, punctuation,functions, and other symbols can also be mapped to inputs received fromone or more of the ten input keys.

The ten input keys can be used to type all of the letters of an Englishalphabet. For example, eight of the input keys correspond to eightfingers of a right hand and a left hand excepting the thumbs and can beassigned to eight letters of the alphabet, these eight letters arereferred to herein as the eight primary letters. A single input receivedvia one of the eight input keys produces one of the eight primaryletters assigned to that particular input key. Secondary letters caninclude the remaining eighteen letters of the alphabet. Various chordinputs—inputs received via a combination of two or more of the ten inputkeys—can produce the secondary letters.

In some implementations, a single action input (e.g., apress-and-release) of one of the user's eight fingers (excepting thethumbs) produces one of the eight primary letters (e.g., A, S, E, T, N,I, O, and P). A single action input using a thumb can produce a shiftfunction. A single action input using the other thumb can produce aspace. The remaining “secondary characters” in the alphabet (i.e., theremaining 18 letters) as well as punctuation characters and severalcomputer function commands are produced by striking a chord. In someexamples, all of the primary characters and most of the secondarycharacters in the data input system are associated with the finger thatproduces that character in a traditional QWERTY keyboard. In someimplementations, the system also includes chords that consist of threeor more keys that can be used to produce digraphs, trigraphs, commonwords, and to switch to additional maps in different modes that allowfor the input of numbers, symbols, and other computer function keys.

The systems and techniques described herein can provide variousadvantages. For example, a ten-figure input typing method and systemdescribed herein can be based on a QWERTY keyboard layout making it easyfor users of a QWERTY keyboard to adapt to the ten-key typing method andsystem. The systems and techniques described can have a reducedfootprint compared to a traditional keyboard but also provide the samefunctionality with similar typing speeds. Also, the systems andtechniques described herein can eliminate lateral movement of fingersand therefore can reduce repetitive stress injuries. The systems andtechniques disclosed herein can be used with pressure sensors on variousdevices such as gloves, implantables, etc. The systems and techniquesdescribed herein can be installed as part of other devices where theuser would prefer to avoid releasing their grasp (e.g., steering wheel,pilot's yoke, etc.).

In some implementations, the systems and techniques described herein canbe configured to have various commonly used words entered as short cutcombinations as chords (i.e., stenography). The systems and techniquesdescribed herein need not require specialized hardware to learn. Suchsystems and techniques can be learned using a traditional QWERTYkeyboard. Because in some implementations, the location of the fingersis not as important as the motion of the fingers for providing an input(e.g., touch-typing), a user can type without the need to pay attentionto the location of the fingers.

The various methods that are described and claimed in this applicationcan be implemented in various computer systems. Thus, acomputer-readable medium can encode a computer program that causes dataprocessing apparatus to perform operations of any of the methods claims.Likewise, various devices and systems can be used to implement themethod described and claimed in this application, including a typinginput apparatus that includes an input device for receiving input fromten input elements, and a processor programmed to perform the operationsof any of the method claims.

Details of one or more implementations are set forth in the accompanyingdrawings and the description below. Other features, aspects, andpotential advantages will be apparent from the description and drawings,and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 shows an example of nomenclature for labeling fingers.

FIG. 2 shows an example of an input device having ten input keys.

FIG. 3 shows a graphical depiction of at least a portion of an exampleof a map.

FIG. 4 shows a graphical depiction of examples of combinations of typinginputs and corresponding outputs.

FIG. 5 a graphical depiction of at least a portion of an example of amap.

FIG. 6 a graphical depiction of at least a portion of an example of amap.

FIG. 7 shows an example process by which stenographic combinations aremapped to input codes.

FIGS. 8A, 8B and 8C show an example process by which stenographiccombinations are mapped to input codes.

FIG. 9 shows an example system configured to produce output using aten-key input device.

FIG. 10 shows an example process for receiving an input and determininga corresponding output for the received input.

FIG. 11 shows an example process for identifying an alternative word foran incorrectly typed word.

FIG. 12 shows an example process for correcting output as input isreceived.

FIG. 13 shows a process for correcting output for completed words.

FIGS. 14A-14C show examples of menus for assisting a user to discoverinput combinations and their corresponding outputs.

FIGS. 15A and 15B show examples of user key preference calibration maps.

FIG. 16 shows a process for identifying an alternative word for anincorrectly typed word.

FIG. 17 shows an example of a visual menu for assisting a user inidentifying possible alternatives to an incorrect word.

FIGS. 18A and 18B show an example process 1800 for determining menuoutputs for an input code.

FIG. 19 shows an example ten-key input device in the form of gloves.

FIGS. 20A and 20B show a touch screen configured to receive input withten-keys.

FIG. 21 shows a graphical depiction of at least a portion of an exampleof a map.

FIG. 22 shows a graphical depiction of examples of combinations oftyping inputs and corresponding outputs.

FIG. 23 shows a graphical depiction of at least a portion of an exampleof a map.

FIG. 24 shows a graphical depiction of examples of combinations oftyping inputs and corresponding outputs.

FIG. 25 shows a graphical depiction of at least a portion of an exampleof a map.

FIG. 26 shows a graphical depiction of examples of combinations oftyping inputs and corresponding outputs.

FIG. 27 shows a graphical depiction of at least a portion of an exampleof a map.

FIG. 28 shows a graphical depiction of examples of combinations oftyping inputs and corresponding outputs.

FIG. 29 shows a graphical depiction of at least a portion of an exampleof a map.

FIG. 30 shows a graphical depiction of examples of combinations oftyping inputs and corresponding outputs.

FIG. 31 shows a graphical depiction of at least a portion of an exampleof a map.

FIG. 32 shows a graphical depiction of examples of combinations oftyping inputs and corresponding outputs.

FIG. 33 shows a graphical depiction of at least a portion of an exampleof a map.

FIG. 34 shows a graphical depiction of examples of combinations oftyping inputs and corresponding outputs.

FIG. 35 shows a graphical depiction of at least a portion of an exampleof a map.

FIG. 36 shows a graphical depiction of examples of combinations oftyping inputs and corresponding outputs.

FIG. 37 shows a graphical depiction of at least a portion of an exampleof a map.

FIG. 38 shows a graphical depiction of examples of combinations oftyping inputs and corresponding outputs.

FIG. 39 shows a graphical depiction of at least a portion of an exampleof a map.

FIG. 40 shows a graphical depiction of examples of combinations oftyping inputs and corresponding outputs.

FIG. 41 shows a graphical depiction of at least a portion of an exampleof a map.

FIG. 42 shows a graphical depiction of examples of combinations oftyping inputs and corresponding outputs.

FIG. 43 shows a graphical depiction of at least a portion of an exampleof a map.

FIG. 44 shows a graphical depiction of examples of combinations oftyping inputs and corresponding outputs.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

This disclosure relates to systems and techniques for encoding keyassignments on an input device. Alphabetic characters, punctuationcharacters and various functions can be encoded for use with an inputdevice that has ten actuation points, such as input keys. Eight of theten keys can be associated with a user's eight fingers (excepting thethumbs) and combinations thereof can produce letters or characters of analphabet such as the English alphabet. In some examples, all of thealphabetic characters in the English language, various punctuationcharacters, and various functions can be produced with such an inputdevice. The remaining two additional keys (each associated with one ofthe user's two thumbs) can be associated with a space bar and a shiftfunction. In some examples, the alphabetic characters can be produced byeither a single actuation of the same finger that would be used to pressthe key for the alphabetic character on a QWERTY layout, or a dualactivation (a two-key chord) that includes the finger that would be usedto press the key for that alphabetic character on a QWERTY layout plusan additional key. Such an input device provides a natural progressionfor users familiar with the QWERTY keyboard layout to a ten-key layout.

In some examples, the systems and techniques disclosed herein can beimplemented a computing device with only ten input keys. In someexamples, the techniques disclosed herein can be implemented byappropriately programming existing computing systems, such as byprogramming a computing device with an existing QWERTY keyboard.

FIG. 1 shows an example 100 of nomenclature for labeling fingers. FIG. 1shows two hands—a left hand 120 and a right hand 121. The left hand 120has five fingers, including a Finger 1 (a pinky finger), Finger 2 (aring finger), Finger 3 (a middle finger), Finger 4 (an index figure),and Finger 9 (a thumb). The right hand 121 has five fingers, including aFinger 5 (an index finger), Finger 6 (a middle finger), Finger 7 (a ringfinger), Finger 8 (a pinky finger), and Finger 0 (a thumb). Fingers 1through 8 include all of the fingers on the left hand 120 and the righthand 121 except the thumbs. The left thumb is Finger 9, and the rightthumb is Finger 0.

FIG. 2 shows an example of an input device 200 having ten inputkeys—Input Key 0, Input Key 1 . . . Input Key 9. The Fingers 0-9 on theleft hand 120 and the right hand 121 correspond to the ten Input Keys0-9 respectively. For example, an input (e.g., an input action such aspress-and-release) from Finger 1 corresponds to Input Key 1. In otherwords, a user can provide input via Input Key 1 by input action fromFinger 1, via Input Key 2 by input action from Finger 2, etc.

All of the letters, numbers, and punctuation used in normal writtenEnglish can be produced using the ten Input Keys 0-9, such as thoseshown in FIG. 2 when in a primary mode. FIG. 3 shows an example of atleast a portion of a home map 300 that, while in the primary mode, mapsinput received from one or more Fingers 0-9 through their respectivecorresponding Input Keys 0-9 to an output. The home map 300 has tenpositions 0-9, one for each of the ten Fingers 0-9 and for each of thecorresponding ten Input Keys 0-9.

The home map 300 shows eight primary letters, one at each of thepositions 1-8. The eight primary letters are outputs that map to asignal action input from each of the Fingers 1-8 respectively. Forexample, a single action input from Finger 1 via Input Key 1 producesthe letter “A”. A single action input received by Input Key 2 producesthe letter “S”. A single action inputs received by Input Keys 1-8 map tothe letters “A,” “S,” “E,” “T,” “N,” “I,” “O,” and “P” respectively. Inthis example, the primary letters were predetermined based on acombination of their location on a QWERTY keyboard and their frequencyof use in the English language. For example, the eight primary lettersare mapped in FIG. 3 to the same finger that those letters correspond toon a QWERTY keyboard. For example, a single action from the Finger 1produces the letter A on both the QWERTY keyboard and the input device200; the letter S is typed on input device 200 and on a QWERTY keyboardusing the Finger 2. Also, the eight primary letters were predeterminedbased on a commonality of use of the eight primary letters in theEnglish language. For example, the letter that maps to Input Key 3 isthe letter “E”. The letter “E” is the most commonly used letter in theEnglish language. Also, the letter “T”, mapped to Input Key 4, is thesecond most commonly used letter in the English language. The primaryletters mapped to Input Keys 1, 2, 3, 4, 5, 6, and 7 are all within thetop seven most commonly used letters in the English language. The letter“P”, mapped to Input Key 8, is the most commonly used letter typed withFinger 8 on the QWERTY keyboard.

The remaining 18 letters of the English alphabet, the secondary letters,map to chord inputs. Receiving a chord input includes receiving inputaction from two or more of the Fingers 0-9 via corresponding Input Keys0-9 during a same time period. For example, a chord is received when anaction input from Finger 1 and from Finger 2 are received by Input Key 1and Input Key 2. This chord (chord 12) maps to the letter W as shown inFIG. 3 and FIG. 4. Some chords produce punctuation or other commandstypically used during typing. For example, a period is produced by thechord 27 (i.e., concurrent action input with both Input Key 2 and InputKey 7). The backspace function is produced by the chord 48 (i.e.,concurrent action input with both Input Key 4 and Input Key 8). In someexamples, the order in which the input keys are pressed down when achord is generated is not important. For example, if the user pressesInput Key 1 followed by Input Key 3 and releases them, the chord 13 isgenerated and the letter X is produced. Similarly, if the user pressesInput Key 3 followed by Input Key 1 and releases them, the chord 31 isgenerated and the letter X is again produced. In some examples, thechord formulations are interchangeable for two-key chords, but thesequence in which the input keys were pressed is tracked for use withsome of the processing features discussed below.

Most of the chords, in the example shown, include an input key thatcorresponds to a finger that types the same letter, punctuation, orfunction on a QWERTY keyboard (according to traditional QWERTY typingtechnique). For example, the letter “V” is produced on a QWERTY keyboardusing Finger 4 and is produced in this example with the chord 46 (i.e.,Input Key 4 and Input Key 6 using Finger 4 and Finger 6). Someexceptions include the characters “Z”, “X”, and “C”, which approximatelyhalf of keyboard users strike differently on a QWERTY keyboard(traditional QWERTY technique uses fingers 1, 2, and 3 to strike thesekeys respectively, while approximately half of keyboard users usefingers 2, 3, and 4 respectively). In some examples, the difficultylevel of each chord is selected based on the frequency of use of thecorresponding letter. For example, a chord can have a respective levelof difficultly according to the fingers involved in the chord. A chordthat involves a pinky finger, for example, can be ranked as moredifficult. As a result chords that include a pinky finger are assignedto less frequently used letters like “x” and “k” and characters such asexclamation points and parentheses. Chords that include one of the indexfingers can be ranked as a relatively easier chord (such as 24=C).Chords that include equivalent fingers on each hand are also relativelyeasier (such as 36=comma). Chords that include adjacent non-indexfingers (23=D) are relatively more difficult. Chords that involvenon-equivalent fingers on opposite hands are relatively more difficult(47=G). Chords that involve non-adjacent, non-index fingers on the samehand are relatively more difficult (13=X). Some pairs of chords arearranged for easy mnemonics whether by physical similarity (“X”/“K”(chord 13/68), “C”/“U” (chord 24/57), and “Y”/“V” (chord 35/46)),phonetic similarity (“J”/“G” (chord 25/47)), or other (F/M radio (chord14/58), R/H factor (chord 34/56)).

The backspace function is produced by a chord, chord 48, that includesInput Key 8 that corresponds to a same finger (right pinky) thatnormally strikes this key on a traditional keyboard. The backspace keyon a QWERTY keyboard is often used repeatedly to correct errors that arenot noticed until two or more subsequent keystrokes have taken place. Inorder to simplify the process of reversing direction using the backspacefunction, the user can hold down one of the input keys in the chord withone hand (Input Key 4 with the left hand or Input Key 8 with the righthand) and press the other input key repeatedly to erase material withouthaving to press both keys in the chord repeatedly, or hold both the keystogether to generate repeated backspaces. This technique can also beapplied to pressing pairs of letters such as “ff”, “ll,” or “mm,” whereone finger in the chord is held down and the other pressed a second timeto indicate a double letter.

The space bar is the most commonly used key on a QWERTY keyboard and isproduced in the present example using the same finger as in a QWERTYkeyboard. For instance, the space function on a QWERTY keyboard isproduced using Finger 0 (the right thumb) and is also produced in theexample in FIG. 3 using the Finger 0. Also, when a user presses thespace bar, he often steps on other inputs succeeding or preceding thespace bar input. Interference with the typing of letters as a result ofstepping on the space function is minimized in home map 300 becauseInput Key 0 is dedicated to the space function, with one exception—achord for return/enter (Input Key 0 and Input Key 9). As a result, evenif users step on other combinations with the space bar, the steppingdoes not produce unwanted chords. Also, input from Finger 0 can beprogrammed to output a leading space or a trailing space for the letterthat was stepped on.

The shift function is produced by a single action stroke of Input Key 9using the left thumb. The shift key—Input Key 9—can be programmed toproduce the same effect if the input produced by the Input Key 9 stepson or does not step on a subsequent input—i.e., a user holds the InputKey 9 while pressing a combination, or presses and releases the InputKey 9 and then presses a combination; the output is the same. Forexample, a single action input of Input Key 9 can act as a sticky keysuch that the next input is subject to the shift function (i.e.,capitalized or in the case of pairs of punctuation characters, thesecond component of the pair). For example, to type a capital “T”, asingle input is provided via Input Key 9 (e.g., a press and release) andthen a single action input of Input Key 4 (e.g., a press and release) isprovided. A colon can be produced by single action input of Input Key 9followed by the chord 78. In some examples, a letter can be capitalizedby adding Input Key 9 to the input for the letter to form a chordincluding the Input Key 9. For example, to produce a capital letter “T”,the chord 49 can be input. So as not to interfere with shifting InputKeys 1-8, the shift key is part of only one chord that produces a resultother that the shift function. That other chord is the chord 90 whichproduces the return/enter function.

As described above, if the shift function key (Input Key 9) is pressedand released and then followed by another input key for a letter orpunctuation character, the shift output will be generated for the otherinput key. In some examples, however, the space function (Input 0) is anexception to this rule; if the shift function key (e.g., Input Key 9) ispressed and released and the space bar is subsequently pressed, theoutput can be mapped to a space rather than the return key produced bythe chord 90. If the shift function key (Input Key 9) is pressedindependently two times in a row, the CAPS LOCK function is activated,and all subsequent output characters are capitalized. Pressing the shiftkey while in CAPS LOCK (i.e., for a third time) will unlock the capsfunction, returning the system to an original state.

Other function keys can also be produced using the “upper case” versionof a two-key chord. For example, the “Ctrl” function can be produced bypressing the shift function key (Input Key 9) either prior to or inconjunction with the chord 16. The “Alt” function is produced bypressing the shift function key (Input Key 9) either prior to or inconjunction with the chord 17. Because these functions can be used incombination with other keys, such as Ctrl-C in Windows to copy selectedmaterial, these functions can also be sticky such that they remainactivated until a subsequent key or chord is pressed.

The various combinations, whether single action inputs or chord inputs,shown in FIG. 3 are described in more detail in Table 1. Both forms ofthe input code for order-independent chords are shown.

TABLE 1 Table 1 Input code Output Shift Output 1 a A 45/54 b B 24/42 c C23/32 d D 3 e E 14/41 f F 47/74 g G 56/65 h H 6 i I 25/52 j J 68/86 k K67/76 l L 58/85 m M 5 n N 7 o 0 8 p P 15/51 q Q 34/43 r R 2 s S 4 t T57/75 u U 46/64 v V 12/21 w W 13/31 x X 35/53 y Y 26/62 z Z 36/63 , <27/72 . > 18/81 ? / 16/61 ! Ctrl 27/72 ( Alt 28/82 ) Esc 37/73 - _(—)38/83 ′ ″ 78/87 ; : 48/84 Backspace Tab 0 space space 9 Shift CAPS 90/09Enter Enter

The home map 300 in FIG. 3 and Table 1 show the input-to-output map fora primary mode. FIG. 4 shows another graphical depiction 400 of the lefthand 120 and the right hand 121 and the combination of Fingers 0-9 forthe combinations discussed in FIG. 3 and in Table 1. For each letter,the left hand 120 and the right hand 121 are shown with black dots overthe fingers providing input for the letter, function, or punctuation atissue. The term “input code” in Table 1 refers to the numeric codeproduced by either the single action input or the chorded input. Theseinput codes are mapped to letters, punctuation, and functions. Thegraphical depiction 400 is another way of showing at least a portion ofmap 300. The depiction of map 300 in FIGS. 3 and 4 is not an exhaustivedepiction of all of the combinations of the input keys and outputs forthose combinations in map 300 while in the primary mode. While in theprimary mode, additional chords can be mapped to parts of words (e.g.,digraphs, trigraphs, etc.) or to complete words, as discussed in moredetail below. A map can be stored in a database format in a data storagedevice mapping various combinations of the Input Keys 0-9. FIGS. 3 and 4are graphical depictions of at least a portion of such a map.

When a user types using the input device 200, the inputs provided usingthe Input Devices 0-9 will produce output according to the home map 300while in the primary mode. If, however, the user wants to input numbers,for example, the user can switch from the home map 300 in the primarymode to numbers mode that includes a second map 500 (as shown in FIG. 5)that maps numbers and other symbols to Input Keys 0-9. The user canswitch to the second map 500 in the numbers mode by inputting a switchcommand using a predetermined chord. As shown in FIG. 4, a switchcommand can be produced using the chord 14580. By pressing the samechord again, chord 14580, the user can switch back from the second map500 to home map 300.

The second map 500 shows that a single action input of Input Keys 0-9maps to the numbers 0-9 respectively. The shift function in the map 500is produced by the chord 19. The space function is produced using thechord 08. The letters and symbols produced by various combinations ifInput Keys 0-9 according to the map 500 are shown in the following Table2:

TABLE 2 Input Code Output Shift Output 01458 NUMBERS SYMBOLS 1 1 ! 2 2 @3 3 # 4 4 $ 9 5 % 0 6 {circumflex over ( )} 5 7 & 6 8 * 7 9 ( 8 0 )09/90 Enter Enter 36/63 , < 27/72 . > 18/81 ? / 45/54 ← ← 46/64 ↑ ↑47/74 → → 04/40 ↓ ↓ 12/21 Tab Tab 78/87 ; : 34/43 PgUp PgUp 56/65 PgDnPgDn 23/32 - _(—) 67/76 + = 14/41 [ { 58/85 ] } 25/52 end end 35/53 homehome 46/64 + = 16/61 ! Ctrl 17/71 ( Alt 28/82 ) Esc 37/73 - _(—) 38/83 '” 13/31 {grave over ( )} {tilde over ( )} 68/86 \ | 15/51 (unused)(unused) 48/84 Backspace Tab 24/42 Fn Fn 57/75 Fn Fn 08/80 space space19/91 Shift CAPS

FIG. 6 shows an example of a third map 600 for use in a symbols mode toproduce symbols using single action inputs and chord inputs on theten-key input device 200. A user can switch from either the home map 300or the second map 500 to the third map 600 by using a switch commandproduced by a predetermined chord. The predetermined chord to switch tothe third map 600 can be, for example, the chord 145890. By pressing thesame chord again 145890, the user can switch from the third map 600 tohome map 300. While in the third map 600, the user can switch to thesecond map 500 by pressing the chord 14580 as discussed above. Table 3shows the various combinations for characters and symbols and theircorresponding output when in the third map 300 (Table 3/Map 600 issimilar to Table 2/Map 500 with at least the exception that output andshift output are different). In some examples, all of the punctuationcharacters and function keys that can be obtained in primary mode ( , <. > ? / ! ( ) - _ ′ ″ ; : Ctrl Alt Del) are available in the numbersmode and the symbols mode, and their chord arrangement is unchangedbetween the home map 300, the second map 500, and the third map 600.

TABLE 3 Input Code Output Shift Output 014598 SYMBOLS NUMBERS 1 ! 1 2 @2 3 # 3 4 $ 4 9 % 5 0 {circumflex over ( )} 6 5 & 7 6 * 8 7 ( 9 8 ) 009/90 Enter Enter 36/63 < , 27/72 > . 18/81 / ? 45/54 ← ← 46/64 ↑ ↑47/74 → → 04/40 ↓ ↓ 12/21 Tab Tab 78/87 : ; 34/43 PgUp PgUp 56/65 PgDnPgDn 23/32 _(—) - 67/76 = + 14/41 { [ 58/85 } ] 25/52 end end 35/53 homehome 46/64 = + 16/61 Ctrl ! 17/71 Alt ( 28/82 Esc ) 37/73 _(—) - 38/83 “' 13/31 {tilde over ( )} {grave over ( )} 68/86 | \ 15/51 (unused)(unused) 48/84 Tab Backspace 24/42 Fn Fn 57/75 Fn Fn 08/80 space space19/91 CAPS Shift Table 3

In the examples discussed above, single action inputs and two-key chordinputs produce single letters, functions, and punctuation. In someimplementations, a chord can be mapped to multiple letters such as adigraph (i.e., combinations of two letters), trigraph, and/or a wholeword. There are a total of two hundred fifty five possible combinationsof Input Keys 1-8 (8 one-key, 28 two-key, 56 three-key, 70 four-key, 56five-key, 28 six-key, 8 seven-key, and 1 eight-key) Although there aretoo many digraphs, trigraphs, and words in the English language thatcould be coded for using combinations of three, four, or more Input Keys1-8, many of the most common words can be mapped to chords of three ormore of the Input Keys 1-8. Stenographic combinations, such as digraphs,trigraphs, and word combinations, can be built from the input keys thatmake up the stenographic combination. In some examples, the stenographiccombination can be built using input keys that make up a portion of thestenographic combination. This facilitates efficiency in learning suchdigraph, trigraph, or word combinations. New users of a ten-key inputdevice can discover such combinations by building them once they havelearned the basic alphabet. Also, stenographic combinations increase thespeed with which a user can type by simplifying the number ofindependent input actions needed to input a digraph, trigraph, or word.Also, stenographic combinations often prevent output errors that canresult from a first input stepping on a second input.

FIG. 7 shows an example process 700 by which combinations of letters aremapped to stenographic combinations of input keys. An input codecorresponding to three or more keys can be input as a chord. The chordedcombination can be mapped to a word (e.g., if bracketed by spaces orbracketed by spaces and punctuation) and can be mapped to a part of aword (e.g., a digraph, a trigraph, etc. when preceded by a letter orfollowed by a letter). All of the potentially available input codes aredetermined at 703. For example, each possible combination of each groupof keys that may be pressed simultaneously as a stenographiccombination—from a minimum of three keys (e.g. 123, 124, 125, etc.) upto a maximum of seven keys (e.g. 1234567, 1234568, etc.) can beconsidered.

At 706, all of the potential letter combinations for a given input codeare determined by scanning a dictionary to determine all of thepotential letter combinations for each input code that occur within theEnglish language. The potential output for each stenographic combinationof input keys includes letter combinations whose input code as typeddiscretely contain all of the input keys in the input key combinationand no additional keys. The “discrete” input codes are those which wouldbe entered if the user entered each letter one at a time as singleletters or two-key chords. As an example, Table 4 shows all of thepotential letter combinations that correspond to the input code 127 thatare found within words in the dictionary. For example, the lettercombination “aso” is found within the words “gasoline,” “mason,”“parasol,” and “reason” as well as many other words. Similarly, theletter combination “woo” is also found a number of times within thedictionary, including as part of the words “swoon,” “swoop,” “wood,” and“wool” (among others), and also as an independent word, “woo.”

TABLE 4 Potential Letter Combination Discrete Input Code aos 1-7-2 aso1-2-7 asso 1-2-2-7 awo 1-12-7 oas 7-1-2 osa 7-2-1 ossa 7-2-2-1 ow 7-12owa 7-12-1 ows 7-12-2 soa 2-7-1 sow 2-7-21 swo 2-12-7 wo 12-7 woo 12-7-7wow 12-7-12

At 709, the number of occurrences of each letter combination is countedin a large text sample. For example, the Brown Corpus can be used as atext sample to determine letter combination frequency. The Brown Corpusconsists of about one million words of American English that have beencompiled from a wide variety of sources. The text sample is scanned todetermine the number of times each combination of letters for a giveninput code occurs. The following table shows the number of times thateach of the potential letter combinations in the above example (inputcode 127) is found in the text sample:

TABLE 5 Number of Instances in Text Potential Letter Combination Sampleaos 82 aso 718 asso 294 awo 13 oas 145 osa 155 ossa 14 ow 13408 owa 607ows 612 soa 64 sow 13 swo 76 wo 9364 woo 362 wow 1

At 712, the most common letter combination is assigned to the giveninput code. In the above example, for the input code 127, the lettercombination “ow” is the most frequent letter combination, and thereforeis assigned to the input code. Therefore, when a user presses all threekeys (1, 2, and 7) together, the output will be the letter combination“ow.”

In some examples, the output mapped to a chord does not depend on theorder in which the input keys are pressed in the chord so long as theyare all simultaneously pressed before releasing any of the input keys inthe chord. For example, the chord 456 can be mapped to the digraphletter combination “th” because Input Key 4 maps to the letter “T” andthe chord 56 maps to the letter “H”. By striking all three input keyssimultaneously to form a three-key chord, the digraph “th” is output.Any order of entry of the Input Keys 4-5-6 can be mapped to produce theoutput “th” as long as the pressing of all three input keys overlaps.Mapping for digraph combinations facilitates typing more quickly as wellas decreasing the likelihood of errors occurring while the user istyping quickly.

In some examples, different outputs (e.g., different digraphs) can beproduced depending on the order of input of the input keys of a chord.For example, the digraph “a1” can be produced by the chord 167 or chord176 where Input Key 1 is pressed before Input Keys 6 and 7. On the otherhand, the digraph “1a” can be produced by the chord 671 or chord 761where the either of the Input Keys 6 or 7 are pressed before theremainder of the keys in the combination. Whether an input code in theform of a chord maps to a single output such as a digraph, trigraph, orword or to multiple outputs can depend on the frequency of digraphs,trigraphs, and/or words that could possibly map the input code. Forexample, if two very commonly used digraphs could map to a chord, eachcould be mapped to the chord with the first key that is input dictatingwhich of the two possible outputs is used. In another example, twodigraphs could be mapped to the same chord but because the difference infrequency of use in a language of one of the digraphs exceeds thefrequency of use of the other digraph by a threshold amount, only themore frequent of the two outputs is mapped to the chord.

It is also possible to enter entire words using stenographiccombinations. If the digraph input is bracketed by a leading and atrailing space, or a leading space and a trailing punctuation character,the word output is generated. For example, if the user enters the inputcode 0 (the space character), followed by the input code 347, thedisplayed output is “ro”. If the user follows this by entering the inputcode 0 (the space character), the computer will change the digraphoutput to the word output, and change the displayed output to “or”.Similarly, if the user “steps on” the stenographic combination with the0 key (i.e. entering the input code 3470), the computer will produce theword output. For input code combinations where there is no digraphoutput, the word will appear and does not require a trailing space orpunctuation character.

In some examples, chords of four or more keys are mostly mapped toentire words, prefixes, and suffixes. For example, the word “that”consists of the letter “t” which is mapped to a single action input fromInput Key 4, “h” which is mapped to the chord of Input Keys 5 and 6, and“a” which is mapped to a single-action input from Input Key 1, andanother “t.” The word “that” can be mapped to all of these individualinput keys as a chord; to build the word as a combination, the usersimply presses all four of these keys together (chord 1456) andreleases.

As with the digraph combinations, in some examples different wordoutputs can be produced depending on the order of the input of the inputkeys of a chord. For example, the word “who” can be produced by thechord 12567 (or any similar combination of these five keys where thefirst key pressed is the 1 or 2 key). On the other hand, the word “how”can be produced by the chord 56712 (or a similar combination of thesefive keys where the first key pressed is the 5, 6, or 7 key).

Some chords can have possible combinations that are not frequently used,such as the input code 178 which results in the possible digraphcombinations of “o?”, “(p”, and “a:”. Similarly, for the chord 1678, themost common word that corresponds to this input code is “lap”, whichonly appears a total of 19 times in the text sample. Chords havinginfrequently used digraph or word combinations that do not meet theusage criteria can produce an error output. These unused combinationscan be made available for a user to customize for specific outputs, ifdesired.

In some examples, a three-key chord can map to three useful combinationssuch as the chord 457 which maps to “but”, “not”, and “out”. In such acase, the first input key in the chord can determine the output. Forexample for the chord 457, if Input Key 4 is the first input key struck,the chord is mapped to ‘but’. If Input Key 5 (which corresponds to the‘n’ character when struck alone) is the first key struck in the chord,the chord is mapped to “not”. If the Input Key 7 key (which correspondsto the “o” character when struck alone) is the first key struck, thechord is mapped to “out”.

In some examples, frequently used words that may have particularlydifficult combinations can be mapped to an easier chord that otherwisehas no other output, or supersede the original combination from thecombination generation process, if desired. For example, the words “for”and “from” are frequently used words that can be mapped to a relativelyeasy chord that is not built entirely from the individual letters ofthose words. Such a chord would need to be memorized. For example, acombination for both these words can be based on the chord 147 for theword “of” to facilitate ease of memorization. For example, the word“for” can be mapped to the chord 1467. The word “from” can be mapped tothe chord 14567.

FIGS. 8A, 8B and 8C show an example process 800 for determining a map ofstenographic combinations. The map can make a distinction between whichhand (left-hand or right-hand) is used to begin the combination (i.e.which input key is pressed down first) as well as make a distinctionbetween letter combinations (digraphs, trigraphs, etc.) and entirewords. As with the process described in FIG. 7, this process determinesthe potential outputs for each possible combination of each group ofkeys that may be pressed simultaneously as a stenographic combination. Adictionary database and a text sample (e.g., the Brown Corpus) are usedto determine which combinations of letters correspond to each specificinput code.

The cycle begins at 802, and at 804 determines all of the potentialcombinations that are available from a minimum of three keys (e.g. 123,124, 125, etc.) and up to the total number of keys on a typing devicebeing mapped. In the example discussed below in connection with Table11, combinations of up to a maximum of seven keys (e.g. 1234567,1234568, etc.) are determined. At 806, the process proceeds sequentiallythrough the list of input codes by selecting the next input codecombination. At 808 the computer scans a dictionary for all potentialdigraphs whose discrete input codes contain all of the input codes inthe input code combination, and only these input codes. For example, at808 the following potential digraphs would be identified for the inputcode 236: “di”, “dz”, “ez”, “id”, and “ze”. These are all combinationsof letters that are found in the dictionary database, either as entirewords, or as fragments that are part of one or more words. Additionaldigraphs that could exist for this input code combination are “zd”, “s,”(the S character followed by a comma), “,s”, “d,”, “,d” “z,” and “,z”,but in the present example these are not identified as potentialdigraphs because these digraphs are not found in any word in thedictionary (in the case of digraphs containing a comma, the dictionarydatabase contains no punctuation characters aside from apostrophes andhyphens). The following table shows the discrete input codes associatedwith each digraph in this example.

TABLE 6 Potential Digraph Discrete Input Code di 23-6 dz  23-26 ez  3-26id  6-23 ze 26-3

At 810, if the process has not identified any potential digraphs for theinput code combination, no digraph is assigned to the input code and itskips the remainder of the digraph generation cycle and enters the wordgeneration cycle at 840. In all cases where the input code includes fiveor more input keys, there will be no potential digraphs (because allindividual letters are coded for with either one or two keys, allcombinations of five or more keys will produce letter combinations ofthree or more characters) and the process will proceed forward to theword generation cycle at 840.

If one or more potential digraphs have been identified, the processcounts the number of instances of each digraph in the text sample at812. Once the text sample has been scanned for each potential digraphthey are ranked according to frequency. The table below shows theresults for the above example of input code 236. Note that although “dz”was identified as a potential digraph because it was found to exist as adigraph within uncommon words such as “gadzooks”, “kudzu,” and “madzoon”it did not occur any times within an example text sample.

TABLE 7 Number of Instances in Potential Digraph Discrete Input CodeText Sample di 23-6 16727 id  6-23 12697 ze 26-3 2021 ez  3-26 194 dz 23-26 0

At 814, it is determined whether the most common digraph exceeds the“usage criteria.” The usage criteria refers to values that are used tofilter the potential output and determine whether the digraph (or word)occurs often enough to be worth assigning to an input code. The usagecriteria can be set by a user of a system determining a stenographiccombination map. Typically usage criteria are based on the size of thetext sample and are either a specifically defined number of occurrencesor a percentage of the total number of words in the text sample. Forexample, the digraph usage criteria for three-key digraph input code canbe 100; if the digraph does not occur more than 100 times in, forexample, the Brown Corpus text sample, it is considered to be tooobscure to be useful as a stenographic combination. If the most commonpotential digraph does not exceed the digraph usage criteria, no digraphis assigned to the input code and the process skips ahead to the wordgeneration cycle at 840. In the above example for the input code 236,the most common potential digraph (“di”) easily exceeds the digraphusage criteria of 100.

In 816, the computer considers whether the input code is obtained witheither one or both hands. Outputs for both digraphs and words aredivided into two classifications: “western” and “eastern”. Forcombinations that include input keys from both hands, digraphs and wordswhose first letter is struck by the left hand on a normal QWERTYkeyboard (i.e. digraphs or words beginning with Q, W, E, R, T, A, S, D,F, G, Z, X, C V, and B) are considered to be “western” combinations.Digraphs and words whose first letter is struck by the right hand on anormal keyboard (i.e. combinations beginning with Y, U, I, O, P, H, J,K, L, N, and M) are considered to be “eastern” combinations. Whenentering a two-hand input code, if the user enters the code beginningwith any of the input keys struck with the left hand (input keys 1-4)the output will be the “western” digraph or word, and if the user entersthe code beginning with any of the input keys struck with the right hand(input keys 5-8) the output will be the “eastern” digraph or word. Inthe relatively less common case that the input code is obtained with thefingers of only one hand (input codes 123, 124, 134, 234, 567, 568, 578,678, 1234, and 5678), the digraph is classified as “western” if thelowest digit in the discrete input code occurs in the first of thediscrete input code pairs. The digraph is classified as “eastern” if thelowest digit in the discrete input code occurs in the second of thediscrete input code pairs. For example, the digraph “pr” associated withthe two-hand discrete input code 8-34 is classified as an “eastern”digraph because the P is normally struck with the right hand on akeyboard. In another example, the digraph “ad” associated with theone-hand discrete input code 1-23 is classified as a “western” digraphbecause the lowest digit in the input code (1) occurs in the first ofthe two input codes (1 and 23) associated with the letters in thedigraph.

If the input code is obtained with only one hand, it is determined at818 whether the most common digraph is classified as western. If so, themost common digraph is assigned to the western digraph input code at820, and the digraph will become the output if the user enters the inputcode beginning with any of the digits in the input code for the firstletter of the digraph. The reverse of the digraph will be assigned at822 as the eastern digraph input code, and will become the output if theuser enters the input code beginning with any of the remaining digits inthe input code. In the above example for the digraph “ad” associatedwith the input code 123 (and the discrete input code 1-23), the digraphis classified as western at 818, the digraph “ad” is assigned to thewestern digraph input code at 820, and the reverse digraph “da” isassigned to the eastern digraph input code at 822. Thus, when the userpresses the input code 123, if they press the 1 key first, followed bythe 2 and 3 (or vice versa), the output generated will be the digraph“ad”. If the user begins the input code 123 by pressing the 2 or 3 keyfirst, the output generated will be the digraph “da”.

If the digraph is determined not to be a western digraph at 818, theprocess is similar but reversed; the most common digraph will beassigned to the eastern digraph input code at 824 and the reverse of themost common digraph will be assigned to the western digraph input codeat 826.

If the digraph is entered with fingers on both hands, the processdetermines at 828 whether the most common eastern digraph exceeds thedigraph usage criteria. If it does not (or if no viable eastern digraphexists), the most common digraph (which will be a western digraph) isassigned to both the eastern and western input codes at 834. If the mostcommon eastern digraph does exceed the criteria, so, the processdetermines whether the most common western digraph also exceeds thedigraph usage criteria at 830. If it does not (or if no viable westerndigraph exists), the most common digraph (which will be an easterndigraph) is assigned to both the eastern and western input codes at 834.In both of these cases, the output will be the same regardless of whichhand or finger is used to begin the input code.

If there are digraphs of both the western (left-hand) and eastern(right-hand) variety that exceed the digraph usage criteria, the processdetermines at 832 whether the eastern or western digraph exceeds the“comparison criteria” in relation to the other. The comparison criteriacan be set by a user. The comparison criteria is a factor by which thepotential digraph (and word) combinations will supersede the most commoncombinations for the opposite hand. In an example, for three-keycombinations, a digraph comparison criteria of 10 is used; if a digraphoccurs ten times more frequently than the most common digraph for theopposite hand, it will supersede the lesser combination and both methodsof entering the combination (western or eastern) will produce an outputthat corresponds to the most common digraph.

If the most common digraph exceeds the digraph comparison criteria at832, the most common digraph is assigned to both the western and easterninput codes at 834. If the most common digraph does not exceed thedigraph comparison criteria, the most common digraph whose first letteris a left-hand key is assigned as the western digraph input code at 836and the most common digraph whose first letter is a right-hand key isassigned as the eastern digraph input code at 838. In the above examplefor the input code 236, the number of instances of the most commonwestern digraph “di” occurs approximately 1.25 times more often than themost common eastern digraph “id”. This does not exceed the digraphcomparison criteria, so the digraph “di” is assigned as the westerndigraph input code and will appear if the user begins the input codewith either of the left-hand keys (i.e. input key 2 or 3) and thedigraph “id” is assigned as the eastern digraph input code and willappear if the user begins the input code with the right-hand key (inputkey 6).

Regardless of whether or not the digraph codes have been assigned, thedigraph generation cycle converges at 840 to determine whether anycomplete words exist for the input code. Similar to the process fordigraphs, the dictionary will be scanned for all words that containletters whose discrete input codes include all of the digits in theinput code. In the example for the input code of 236 above, there are atotal of sixteen words whose discrete input codes correspond properlywith the input code. The following table shows the discrete input codesfor each of these words.

TABLE 8 Potential Word Discrete Input Code dei 23-3-6 di 23-6 did23-6-23 die 23-6-3 died 23-6-3-23 dies 23-6-3-2 id 6-23 seize 2-3-6-26-3seized 2-3-6-26-3-23 seizes 2-3-6-26-3-2 side 2-6-23-3 sided 2-6-23-3-23sides 2-6-23-3-2 size 2-6-26-3 sized 2-6-26-3-23 sizes 2-6-26-3-2

At 842, it is determined whether any words exist for the input codecombination. If there are no complete words found in the dictionary thatcorrespond to the input code combination, the process moves to 844 anddetermines whether digraph input codes have been assigned. If digraphinput codes had been assigned in the earlier process, then the easternand western digraph codes are assigned to the eastern and western wordcodes, respectively, at 846. Thus, if the user presses a spacecharacter, followed by the input code, followed by another space orother punctuation character, the output will be the assigned digraph(western or eastern, as appropriate). If the digraph input codes havenot been assigned, then an ERROR output is assigned to the input code at848, and pressing this input code will result in an output of a specialcharacter that indicates to the user that no stenographic combinationhas been assigned to this input code.

If the input code combination corresponds to one or more complete wordsthat are found in the dictionary, the number of instances of these wordsare counted in 850. If the most common word does not exceed the wordusage criteria at 852 (the word usage criteria can be the same ordifferent than the digraph usage criteria discussed above at 814), theprocess moves to 844 as above (with either digraphs becoming thedesignated output or an ERROR code).

If the most common word exceeds the word usage criteria, the processdetermines at 854 whether the input code is obtained using one or bothhands. If the input code is obtain with only one hand, the most commonword is assigned to both the eastern and western input codes at 856. Inthis case, the output word will result regardless of which finger isused to begin the input code combination.

At 858, it is determined whether digraph input codes have been assigned.If no digraph input codes have been assigned, the word input codes areassigned to the digraph input codes instead at 860. In this case, theoutput eastern and western input codes will be the same—the most commonword—regardless of which order the keys are pressed, and regardless ofwhether the input code is bracketed by a space character and a space orpunctuation character (delimiter characters). If digraph codes have beenassigned, then these will remain as originally assigned and the wordoutput will only appear if the input code is bracketed. For example, forthe one-hand input code 123, the most common word output is “we,” whichoccurs 2043 times in the text sample as an independent word. However,since “ad” has been assigned to the western digraph input code and “da”has been assigned to the eastern digraph input code, the word “we” willonly appear if the input code is preceded by a space and followed by aspace or punctuation character.

If the input code is obtained with both hands it is determined at 862whether the most common eastern word exceeds the word usage criteria. Ifit does not, the most common word (a western word) will be assigned toboth the eastern and western input codes at 856 and the process moves to858 to determine whether digraph input codes have been assigned (asdescribed above).

At 864 it is determined whether the most common western word exceeds theword usage criteria. If it does not, the most common word (an easternword) will be assigned to both the eastern and western input codes at856, and the process once again converges at 858. For example, for theinput code 236, the most common of the potential western words is “did”,which occurs 1001 times in the text sample and exceeds the usagecriteria. The only eastern word associated with the input code 236 is“id,” which is recognized in the dictionary but does not actually occuras an independent word in the text sample. Since the digraphs “di” and“id” have already been assigned as the western and eastern digraph inputcodes, respectively, the word “did” is assigned to the western andeastern word input codes for 236 and will only appear as an output ifthe input code is bracketed by delimiter characters.

If both the most common eastern and the most common western words exceedthe usage criteria, it is determined at 866 whether the eastern orwestern word exceeds the word comparison criteria (the word comparisoncriteria can be the same or different as the digraph criteria discussedabove at 832) in relation to the other, similar to the process fordigraphs at 832. As with digraphs, if the most common word exceeds theword comparison criteria, the most common word is assigned to both thewestern and eastern word input codes at 856.

If the most common word does not exceed the comparison criteria, themost common word whose first letter is a left-hand key is assigned asthe western word input code at 868 and the most common word whose firstletter is a right-hand key is assigned as the eastern word input code at870.

An example of this process is for the four-key input code 1236. Theinput codes can possibly produce any of the following letters: A (inputcode 1), S (input code 2), E (input code 3), I (input code 6), W (inputcode 21), X (input code 31), D (input code 32), and Z (input code 26).The input codes 16 and 36 code for the exclamation point and comma,respectively, but these characters not used in the combinationgeneration process (only the apostrophe and hyphen are included as apotential non-letter character). The potential output for thisstenographic combination can only consist of words whose input codecontains all of these codes and no additional codes. The following tableshows the potential words that are considered for the input code 1236:

TABLE 9 Number of Discrete Input Instances in Text Potential Word CodeEastern/Western Sample aid 1-6-23 Western 138 aide 1-6-23-3 Western 10aided 1-6-23-2-23 Western 12 aids 1-6-23-2 Western 24 aside 1-2-6-23-3Western 60 axis 1-13-6-2 Western 40 dais 13-1-6-2 Western 2 dazed13-1-26-3-3 Western 3 dia 23-6-1 Western 4 idea 6-23-3-1 Eastern 195ideas 6-23-3-1-2 Eastern 139 said 2-1-6-23 Western 1949 six 2-6-13Western 230 wei 12-3-6 Western 2 wide 12-6-32-3 Western 167 wise12-6-2-3 Western 42

The most common western word is “said”, which occurs 1949 times. Themost common eastern word is “idea” which occurs 195 times. In anexample, the comparison criteria for 4-key word combinations is 8. Since“said” occurs more than 8 times as often as “idea”, it exceeds the wordcomparison criteria and the western word supersedes the eastern word.Furthermore, since there is no digraph for the input code 1236, the word“said” will appear any time the user presses and releases this group ofinput keys—regardless of which order they are pressed, and regardless ofwhether this input code is bracketed by a space and space/punctuationpair.

At 872 it is determined whether the combination generation cycle iscomplete; whether digraph, word, or ERROR codes have been assigned toall available combinations. If not, the cycle returns to 806 andproceeds for the next input code combination.

If the cycle is complete, special case input codes are assigned at 874,and the combination generation cycle ends at 876. For example, in anexample the digraph output for the western input code 4567 (originally“gh”) is replaced with the letter combination “tion” and the output forthe eastern input code (also originally “gh”) is replaced with theletter combination “ing”—both useful suffixes. There are nine specialcases summarized in the tables below.

The following tables summarize the all of the available combinations forthe specific usage and comparison criteria in an embodiment.

TABLE 10 Number of Comparison Keys in Usage Criteria Criteria Input CodeDigraph Word Digraph Word 3  100 100 10 10 4 1000 100  8 8 5 N/A1 100N/A1 3.5 6 N/A1 100 N/A1 2 7 N/A1 100 N/A1 2 Notes: 1. Since the maximumnumber of keys used to form a single letter is two, digraphs cannot beformed by five or more keys.

TABLE 11 Input Digraph Word Code Eastern Western Eastern Western 123 adda we we 124 ac ca fact fact 125 wn ja — — 126 wi wi — — 127 wo ow — —128 — — — — 134 ar ra are are 135 ay ay any any 136 xi ix — — 137 xo ox— — 138 xp xp — — 145 ab (nf) ba¹ — — 146 fi if if if 147 fo of of of148 — — — — 156 ha ha — — 157 qu ua — — 158 am ma am man 167 al la allall 168 ak ka — — 178 — — — — 234 (ce) est¹ (ce) est¹ set set 235 nd ndend need 236 di id did did 237 do od do do 238 's 's deep deep 245 nc nc— — 246 ci is its its 247 co oc cost cost 248 — — — — 256 sh sh his his257 su us soon us 258 sm ms — — 267 sl ls — — 268 sk ks — — 278 — — — —345 be be be be 346 ye it ever ever 347 ro or get or 348 rp pr per per356 he he he he 357 eu yo one one 358 em me my my 367 el le — — 368 keke keep keep 378 o' o' — — 456 th th bit hit 457 (tu) but² (ng) not/out²but² not/out² 458 tm mb — — 467 gi ig lot lot 468 — — — — 478 top toptop top 567 (ho)ion¹ (ho)ion union union 568 mi im him him 578 mo om upup 678 lp pl look look 1234 wr wr were were 1235 and and and and 1236said said said said 1237 — — — — 1238 — — — — 1245 can can can can 1246— — — — 1247 two two two two 1248 past past past past 1256 wh wh has has1257 now now now now 1258 mass mass mass mass 1267 will low will low1268 ask ask ask ask 1278 — — — — 1345 ran year ran year 1346 five fivefive five 1347 for for for for 1348 part part part part 1356 — — — —1357 — — — — 1358 may may may may 1367 — — — — 1368 — — — — 1378 — — — —1456 that that that that 1457 fu fu about about 1458 — — NUMBERS³NUMBERS³ 1467 fl if (total) for⁴ (total) for⁴ 1468 — — — — 1478 — — — —1567 hall hall hall hall 1568 main main main main 1578 — — — — 1678 — —— — 2345 cy cy best best 2346 tried tried tried tried 2347 dg dg goodorder 2348 step press step press 2356 she she she she 2357 du ud doneused 2358 seems seems seems seems 2367 dl ld else old 2368 — — — — 2378— — — — 2456 ch ch this this 2457 cu uc cut just 2458 — — — — 2467 cl clstill lost 2468 ck ck — — 2478 stop post stop post 2567 ious¹ ious¹ johnjohn 2568 miss miss miss miss 2578 — — — — 2678 — — — — 3456 (hr) the¹(hr) the¹ the the 3457 ru ur boy our 3458 M1 mr type mr 3467 rl rl giveover 3468 rk rk kept kept 3478 pro pro poor poor 3567 ly ly only only3568 — — — — 3578 open open open open 3678 like like like like 4567 (gh)tion¹ (gh) ing¹ both into 4568 think think think think 4578 put put putput 4678 took took took took 5678 lm lm — — 12345 between years betweenyears 12346 first first first first 12347 toward toward toward toward12348 expected peace expected peace 12356 when had when had 12357 downdown down down 12358 same made same made 12367 well well well well 12368asked paid asked paid 12378 — — — — 12456 with with with with 12457cannot cannot cannot cannot 12458 — — — — 12467 social last social last12468 attack attack attack attack 12478 — — — — 12567 who how who how12568 — — — — 12578 woman woman woman woman 12678 — — — — 13456 havehave have have 13457 before often before often 13458 army matter armymatter 13467 felt life felt life 13468 take private take private 13478 —— — — 13567 alone lay alone lay 13568 make make make make 13578 — — — —13678 — — — — 14567 (again) from⁴ (half) from⁴ (again) (half) from⁴from⁴ 14568 — — — — 14578 among among among among 14678 talk talk talktalk 15678 human human human human 23456 these these these these 23457course under course under 23458 system mrs system mrs 23467 told livedtold lived 23468 spirit piece spirit piece 23478 stopped process stoppedprocess 23567 (should) ould¹ (house) ould¹ should house 23568 mind mindmind mind 23578 some some some some 23678 looked looked looked looked24567 such such such such 24568 — — — 24578 most most most most 24678stock stock stock stock 25678 — — — 34567 through other through other34568 them them them them 34578 more more more more 34678 — — — 35678home home home home 45678 book might book might 123456 where where wherewhere 123457 because because because because 123458 came came came came123467 world world world world 123468 dark dark dark dark 123478 powerpower power power 123567 would would would would 123568 knew knew knewknew 123578 women women women women 123678 walked walked walked walked124567 against against against against 124568 back back back back 124578— — — 124678 lack lack lack lack 125678 small know small know 134567another another another another 134568 taken market taken market 134578from from from from 134678 — — — 135678 example play example play 145678taking making taking making 234567 could could could could 234568 didn'tdidn't didn't didn't 234578 come come come come 234678 period periodperiod period 235678 simply middle simply middle 245678 much much muchmuch 345678 problem problem problem problem 1234567 already howeveralready however 1234568 american american american american 1234578company major company major 1234678 work place work place 1235678 playedplayed played played 1245678 almost almost almost almost 1345678 familyprobably family probably 2345678 economic possible economic possibleSpecial Cases (digraphs or words in parentheses have been superseded):¹Original digraph has been replaced by more useful combination inpreferred embodiment. ²Output depends on the first key in thecombination to be pressed. ³Input code switches keyboard input mode toNumbers/Symbols layout. ⁴Combination does not correspond directly toinput code; must be memorized by user.

FIG. 9 shows an example system 900 configured to produce output using aninput device 910. The input device 910 includes an input device that canreceive input from ten fingers such as an input device that has only tenkeys, or a QWERTY keyboard. In some examples, the input device can be aQWERTY keyboard programmed such that less than all of the typicalalphabetic keys on the keyboard can be programmed to produce letteroutput from chorded input. The system includes a ten-key input device910, a computing device 920, and a display device 930. The computingdevice includes a memory 921 (e.g., RAM and/or ROM) and a processor 922.The memory 921 can store instructions that when performed by theprocessor 922 cause the processor to perform operations, includingproducing an output based on an input communicated from the input device910. The output can be determined based on one or more maps stored inthe memory 921. The one or more maps can be stored in a database formatin the computing device 920. The output is communicated to the displaydevice 930. The display device can display the output in a userinterface.

FIG. 10 shows an example of a process 1000 for receiving an input anddetermining a corresponding output for the received input. The process1000 is performed, for example, by a computing device such as computingdevice 920. At 1010, a field for OUTPUT and field for INPUT are shown.These fields can be stored, for example, in memory 921. At 1010, theOUTPUT and INPUT fields have no value. As input is received, the INPUTfield is populated according to the received input. When an indicationis received that the INPUT field value is complete (e.g., a release ofone or more input keys), the INPUT field value gets translated into anOUTPUT value based on a map such as one of the home map 300, second map500, or third map 600. The OUTPUT value can be communicated to a displaydevice such as display device 930.

The following example is performed in the primary mode with the home map300. At 1012, input is received from a user pressing on Input Key 5. Inresponse to the input received at 1012, the INPUT field value ispopulated 1013 with a “5”, representing input received from the InputKey 5 as shown at 1014. If the pressing is subsequently released at1015, the INPUT field value of “5” is translated 1016 according to thehome map 300 into an output value of “n”. As a result, the INPUT fieldvalue is cleared and the OUTPUT field value is populated with the valueof “n” as shown at 1018. The OUTPUT field value of “n” can be providedto a display device for display to the user.

However, if, before the user releases the Input Key 5, another input isreceived 1020 from a user pressing another input key, Input Key 4, thena “4” is added 1023 to the INPUT field value so that the INPUT fieldvalue is “54” as shown at 1024. If the pressing of the Input Keys 5 and4 is subsequently released at 1025, the INPUT field value of “54” istranslated 1026 according the home map 300 into an output value of “b”.As a result, the INPUT field value is cleared and the OUTPUT field valueis populated with the value of “b” as shown at 1028. The OUTPUT fieldvalue of “b” can be provided to a display device for display to theuser.

However, if, before the user releases either or both of the Input Keys 5and 4, another input is received at 1030 from the user pressing thirdinput key, Input Key 3, then a “3” is added 1033 to the INPUT fieldvalue so that the INPUT field value is “543” as shown at 1034. If thepressing of the Input Keys 5, 4, and 3 is subsequently released at 1035,the INPUT field value of “543” is translated 1036 according to the map300 (as described above map 300 can include stenographic combinationssuch as those in Table 11) into an output value of “be”. As a result,the INPUT field value is cleared and the OUTPUT field value is populatedwith the value of “be” as shown at 1038. The OUTPUT field value of “be”can be provided to a display device for display to the user.

However, if, before the user releases the Input Keys 3, 4, and 5, afourth input is received at 1040 from the user pressing Input Key 6,then a “6” is added 1043 to the INPUT field value so that the INPUTfield value is “5436” as shown at 1044. If the pressing of the InputKeys 5, 4, 3, and 6 is subsequently released at 1045 (in any order), theINPUT field value of “5436” is translated at 1046 according to map 300into an output value of “the”. As a result, the INPUT field value iscleared and the OUTPUT field value is populated with the value of “the”as shown at 1048. The OUTPUT field value of “the” can be provided to adisplay device for display to the user.

When multiple keys are active (i.e., simultaneously pressed), therelease of any of the active keys (regardless of the order in which theywere activated) can cause the processor to translate the INPUT field toproduce a value in the OUTPUT field by looking up the output associatedwith the INPUT on a map. Once the OUTPUT field is processed the INPUTfield and the OUTPUT fields can be cleared for translating a new inputas additional input keys are activated. If some keys from the previousinput/output are still pressed, releasing them will have no furthereffect, nor will they become part of a new chord. This allows for somestepping on previous inputs on subsequent inputs without causing anundesired chord or losing the subsequent activation of an input key.

In some implementations, autocorrect features can be used to correctcommon mistakes that occur as a result of operator error. Severaldifferent types of autocorrect techniques can be employed. Many suchautocorrect features correct a mistake once a word is bracketed by(i.e., preceded by and succeeded by) a leading and a trailing space.

In some examples, step-on errors or fragmented chord errors can beautocorrected. In the examples where output is generated in response toa user releasing a key, step-on errors occur when a user begins a newinput for a new letter, word, or portion of word before release of theinput keys for the previous input. For example, if a user presses anInput Key 1, with a desired output of the letter “a” but beforereleasing the pressing of Input Key 1 presses another input key (i.e.,steps on the input with Input Key 1) such as Input Key 5 with a desiredoutput of “n”, then a chord 45 will be recognized. The letter “q” willbe output instead of the desired “an”. Fragmented chord errors, whichare essentially the opposite of step-on errors, occur when a user failsto press both input keys in a chord simultaneously (i.e. the user failsto press the second key in a chord prior to releasing the first key).For example, if a user presses and releases Input Key 5 followed bypressing and releasing Input Key 8, the letters “np” will be producedinstead of the desired output “m”.

FIG. 11 shows a process 1100 for automatically correcting a step-on orfragmented chord error. At 1110, an input code is received from a userusing a ten-key input device for a word. At 1120, the input code istranslated into potential output that contains the letters as typedaccording to a map such as map 300. At 1130, the potential output islooked up in a word list (e.g., a list of English words found in an inEnglish dictionary), and it is determined whether the potential outputcorresponds to any word in the word list. If the potential outputmatches a word, the potential output is produced for further output orprocessing at 1140 such as for display on an output device. For example,if input code is 2-3-1-4 is received then the translation (using map300) at 1120 produces the potential output “seat”. Because the word“seat” occurs in the dictionary, the output “seat” is produced forfurther output or processing at 1140.

If at 1130, the potential output does not match any word, then theprocess determines at 1150 potential output alternatives based on thepossible mistakes that a user may have made. If only one of thesepotential output alternatives corresponds to a word in the dictionary at1160, it is produced as output at 1170. If none of the potential outputalternatives match a word in the dictionary, than the original output(as typed) is produced at 1140. Similarly, if more than one potentialalternative output match words in the dictionary, then it is notpossible for the process to determine with certainty which error wasmade and the original output (as typed) is produced at 1140. Forexample, if the input code is 2-3-14, then the potential output “sef” isconsidered at 1130. This does not match any of the words in thedictionary, and potential alternatives are identified at 1150. Thealternatives are determined by producing potential input codes and theircorresponding potential output by replacing potential step-on errorswith the discrete input codes and replacing potential fragmented chordswith chords. In the above example, the following alternative input codesand corresponding potential output alternatives are produced at 1150:input code 23-14, which presumes a fragmented chord error occurred andcorresponds to a potential output of “df”, and input code 2-3-1-4, whichpresumes a step-on error occurred and corresponds to a potential outputof “seat”. At 1160 these potential outputs are compared to the words inthe dictionary and only the potential output “seat” is found to match.At 1170 the output “seat” is produced instead of the original output of“sef”.

Incorrectly ordered combinations forming a chord can also beautomatically corrected according to the process 1100 in FIG. 11. Asdescribed above, some chords can be mapped to different outputsdepending on the order the input keys are pressed (e.g., the order inwhich the first key is pressed). In cases where a chord is entered wherethe output is dependent on the order in which the input keys arepressed, at 1150 the process determines a potential alternative bybuilding a word using the opposite (eastern or western, as describedabove) formulation. For example, if the user enters the input code45-3-4567, the potential output “betion” is considered at 1130. Thisdoes not match any of the words in the dictionary, and at 1150 thepotential output alternative “being” is identified by replacing thesuffix “tion” (western) with the suffix “ing” (eastern). At 1160 thispotential output alternative is found to occur in the dictionary, so at1170 the output “being” is produced instead of the original output of“betion”.

In addition to using the opposite (eastern or western) chord output toconstruct a potential alternate output word in the process 1100, it isalso possible to also include all alternate letter combinations todevelop potential alternate output words at 1150. For example, if theuser enters the input code 27-1-237 at 1110 (which includes the westernversion of the input code 237, which translates to the digraph “di”),the code is translated into the potential output “gadi” at 1120. Sincethis does not match any of the words in the dictionary at 1130,potential output alternatives are constructed at 1150. The easternversion of the input code 237 translates to the digraph “id”, but theinput code could also potentially be mapped to the digraphs “dz”, “ez”,and “ze”. These digraphs occur much less frequently (as shown in Table7), but still produce formulations that may be found as part of words inthe dictionary database. In the above example, the potential outputalternatives “gaid”, “gadz”, “gaez”, and “gaze” are produced at 1150.Since only one of these potential outputs (“gaze”) is found to occur inthe dictionary at 1160, the output “gaze” is produced at 1170.

FIG. 12 shows an example process 1200 for correcting step-on orfragmented chord errors as well as improperly ordered digraphs,trigraphs, and other letter combinations that may arise during thetyping process due to user error. At 1202 an input code is received froma user using a ten-key input device for a word. At 1204 the input codeis translated into potential output text that contains the letters astyped according to a map such as map 300. The potential output text iscompared to a word list such as a dictionary at 1206, and it isdetermined whether the potential output text corresponds to any word orleading fragment of a word. If the potential output text matches a word,the text is produced for further output or processing at 1208. Forexample, the input code 54-1 received at 1202 would be translated to thepotential output text “ba” at 1204. The potential output text “ba”matches a number of entries in the dictionary at 1206, as a leadingfragment of such words as “bag”, “bake”, “ball”, etc. The output text“ba” is therefore produced at 1208 for output or further processing.

If the potential output text does not correspond to any word or wordfragment at 1206, the input code is broken into its component blocks at1210. These component blocks include the input code digits as well asthe order in which the keys in each input code block were activated. Thepotential replacement generation cycle, in which potential replacementsfor the incorrect input text are generated, begins at 1212. The cycleproceeds sequentially through each block in the input code. At 1214 theprocess determines whether the cycle has been completed. If it has not,the next input code block is selected at 1216 and becomes the currentinput code block.

At 1218 the current input code block is examined to determine whether itconsists of three or more input code digits (i.e. three or more keyswere pressed simultaneously). If so, the current input code block isreplaced with the “eastern” or “western” counterpart at 1220. Therevised input code is translated into potential text at 1222, and thepotential text is compared to the word list at 1224 to determine whetherthe potential alternative is a viable replacement. If the potentialoutput is not in the dictionary, the cycle proceeds through 1214 andmoves on to the next input code block. If the potential word is found inthe dictionary, the entry is added to a list of potential replacementsat 1226 and the cycle proceeds through 1214 and moves on to the nextinput code block.

If the current input code block does not contain three or more digits at1218, it is determined at 1228 whether the current block contains twodigits—a couplet. If so, the couplet is replaced with a pair of singleinput codes—singlets—in the same order in which the couplet wasoriginally entered at 1230. As above, the revised input code istranslated into potential text at 1222 and the potential text iscompared to the word list at 1224.

If the current input code block does not contain two digits at 1228 (inother words, it consists of a single digit), it is determined at 1232whether the current and next input code blocks are both single digitinput codes—singlets. If the next input code block is not a singlet(i.e. it is some other type of block or else the current input codeblock is the final input code block in the cycle) or is identical to thecurrent input code block (due to a pair of repeated letters, such as“oo” in “soon”), the cycle returns to 1214 without producing a potentialreplacement and moves on to the next input code block. If the currentand next input code blocks are nonidentical singlets at 1232, they arereplaced at 1234 with a couplet composed of the pair of singlets in thesame order in which they were originally entered. As above, the revisedinput code is translated into potential text at 1222 and the potentialtext is compared to the word list at 1224.

Once the potential replacement generation cycle at 1214 is complete, itis determined at 1236 whether there is exactly one potentialreplacement. If there are no potential replacements that are found inthe dictionary, the original text output (as typed) is produced at 1208for display or further processing. Similarly, if there are two or morepotential replacements at 1236, it is not possible to definitivelyidentify the user error, and the original text output is produced at1208. If there is exactly one potential replacement, the original textis replaced with the corrected text at 1238, and the corrected text isproduced at 1208 for display or further processing.

For example, at 1202 the user enters the input code 54-1-4-4-367. At1204, the input code is translated to the potential output text“battel”. This potential output text is not recognized as correspondingto any word in the dictionary at 1206. The input code is separated intofive component blocks at 1210, and enters the potential replacementgeneration cycle at 1212. The results of the potential replacementgeneration cycle are shown in Table 12, beginning at 1216 for eachsuccessive cycle. The sections of the revised input code that are shownin bold type are the input code blocks that were changed during thepotential replacement generation cycle.

TABLE 12 Path in Potential Potential Current Input Next InputReplacement Revised Replacement Cycle Code Block Code Block GenerationCycle Input Code Text 1 54 1 1218, 1228, 1230, 5-4-1-4-4- ntattel 1222,1224 367 2 1 4 1218, 1228, 1232, 54-14-4-367 bqtel 1234, 1222, 1224 3 44 1218, 1228, 1232 N/A N/A 4 4 367 1218, 1228, 1232 N/A N/A 5 367 —1218, 1220, 1222, 54-1-4-4- battle 1224, 1226 763

Of the five cycles that are completed in the example, only one of themproduces potential replacement text that is found in the dictionary(“battle”) and is added to the potential replacements list at 1226.After completion of the potential replacement generation cycle at 1214,it is determined at 1236 that there is only one potential replacement.The original text of “battel” is replaced with “battle” at 1238, andthis is produced as output at 1208.

In some examples, the error correction for text input is performedbefore a word is completed (i.e. “on-the-fly”). It is also possible toperform a similar process once the user has indicated the end of a wordthrough the inclusion of a delimiter character such as a space, period,or other punctuation character. This can be useful when an ambiguousresult is obtained from the process 1200.

In some examples, the process 1300 described in FIG. 13 can be performedwhen a delimiter character is received that indicates the end of a word.The process is effectively identical to process 1200, except thatpotential output replacements are only viable if they match the entireword in the word list. For example, as described above the word fragment“ba” would match a number of words in the word list according tocriteria for process 1200, but would not match any words according tothe criteria for process 1300 because it is not a complete word.

For example, if the user enters the input code 7-4-3, it corresponds tothe output text “ote”. This is not found as a word or as a leadingfragment of a word in the dictionary. Based on the process 1200, thealternate input codes 7-43 and 74-3 are generated, which correspond tothe potential output text “or” and “ge” respectively. Both of these arerecognized as potential entries in the dictionary (“or” as anindependent word, and “ge” as part of the words “geese”, “general”,“get”, etc.) so it is not possible to automatically recognize andcorrect the input error. However, if the user subsequently produces aninput indicating a delimiter character (such as a space or otherpunctuation character), it is known that the user has completed typingthe word. At this point, potential replacement words are identifiedaccording to the process 1300. Only text that corresponds to entirewords will be added to the potential replacements list. In this example,the only viable potential output text is the word “or” (since “ge” isnot a word) and the output can be produced without ambiguity.

Thus, at 1302 an input code is received that terminates with adelimiter. At 1304 the delimiter is trimmed and the input code istranslated into potential output text. The potential output text iscompared to a word list at 1306, and it is determined whether thepotential output text corresponds to any word. If the potential outputtext matches a word, the delimiter character is re-attached at 1308, andthe text is produced for further output or processing at 1310.

If the potential output text does not correspond to any word at 1306,the input code is broken into its component blocks at 1312. Thesecomponent blocks include the input code digits as well as the order inwhich the keys in each input code block. The potential replacementgeneration cycle, in which potential replacements for the incorrectinput text are generated, begins at 1314. The cycle proceedssequentially through each block in the input code. At 1316 the processdetermines whether the cycle has been completed. If it has not, the nextinput code block is selected at 1318 and becomes the current input codeblock.

At 1320 the current input code block is examined to determine whether itconsists of three or more input code digits (i.e. three or more keyswere pressed simultaneously). If so, the current input code block isreplaced with the “eastern” or “western” counterpart at 1322. Therevised input code is translated into a potential output word at 1324,and the potential word is compared to the word list at 1326 to determinewhether the potential word is a viable replacement. If the potentialword is not in the dictionary, the cycle proceeds through 1316 and moveson to the next input code block. If the potential word is found in thedictionary, the entry is added to a list of potential replacements at1328 and the cycle proceeds through 1316 and moves on to the next inputcode block.

If the current input code block does not contain three or more digits at1320, it is determined at 1330 whether the current block contains twodigits—a couplet. If so, the couplet is replaced with a pair of singleinput codes—singlets—in the same order in which the couplet wasoriginally entered at 1332. As above, the revised input code istranslated into a potential word at 1324 and the potential word iscompared to the word list at 1326.

If the current input code block does not contain two digits at 1330 (inother words, it consists of a single digit), it is determined at 1334whether the current and next input code blocks are both single digitinput codes—singlets. If the next input code block is not a singlet(i.e. it is some other type of block or else the current input codeblock is the final input code block in the cycle) or is identical to thecurrent input code block (due to a pair of repeated letters, such as“oo” in “soon”), the cycle returns to 1316 without producing a potentialreplacement and moves on to the next input code block. If the currentand next input code blocks are nonidentical singlets at 1334, they arereplaced at 1336 with a couplet composed of the pair of singlets in thesame order in which they were originally entered. As above, the revisedinput code is translated into a potential word at 1324, and thepotential word is compared to the word list at 1326.

Once the potential replacement generation cycle at 1316 is complete, itis determined at 1338 whether there is exactly one potentialreplacement. If there are no potential replacements that are found inthe dictionary, the original text output (as typed) is produced at 1310after re-attaching the delimiter character at 1308. Similarly, if thereare two or more potential replacements at 1338, it is not possible todefinitively identify the user error, and the original text output isproduced at 1310 after re-attaching the delimiter character at 1308. Ifthere is exactly one potential replacement, the original text isreplaced with the corrected word at 1340, and the corrected word isproduced at 1310 for display or further processing after re-attachingthe delimiter character at 1308.

The process 1300 described in FIG. 13 can apply to single charactersthat are input when the user intends to write a short word. For example,if the user intends to type the word “at” using the input code 1-4 butsteps on the second key before releasing the first and enters the inputcode 14, the output text “f” will be produced according to the map 300.However, if the user subsequently presses the space key, the process1300 will replace the output text “f” with “at”.

Skewed combinations can also be identified and corrected. A skewedcombination occurs when a user presses some elements of a chord whilereleasing other elements too early. Skewed combinations will result inundesired outputs. For example, if the user, intending to input thechord 3456, presses Input Keys 3, 4, and 5 but releases the pressingprior to pressing the fourth key in the chord, Input Key 6, theresulting output is “bei” as opposed to the desired “the”. When a skewedcombination is bracketed by spaces, the common mistakes of this type canbe recognized and replaced with the output that would have been producedby the complete chord. In other examples, “ag” (produced bypressing-and-releasing Input Key 1, pressing both the Input Keys 4 and7) becomes “of” (which should have been: pressing and releasing InputKeys 1,4, and 7 as a single combination), and “wy”(pressing-and-releasing Input Keys 1 and 2, then pressing-and-releasingInput Keys 3 and 5) becomes “and” (which should have been:pressing-and-releasing Input Keys 1, 2, 3, and 5 as a singlecombination).

In some implementations, certain combinations of input keys can beshortcuts to known words. The shortcuts can act as deliberateautocorrect features. In other words, a user can increase typing speedby deliberately relying on the computer to correct errors rather thanhaving to type out a whole word. In this way, the user can enter wordsthat would normally require three or more keystrokes with two or fewer.For example, instead of using five separate actuations (three primarykeys and two chords) to type the word ‘there’, the user can enter thechord 3456 for the word “the” followed by a chord for the letter “r”,followed by a space. This particular combination for “ther” can bemapped to “there”. For words that end with the suffix “-ed” (such as“wanted” or “shouted”), the user can append the letter “d” to the end ofthe base word and rely on the computer to correct the errorautomatically. Deliberately stepping on two-letter words (as describedabove in connection with autocorrecting “step on” errors) is anotherexample of how this technique can be used to increase typing speed.

One advantage of the above described systems, devices and techniques isthat users already familiar and proficient with the QWERTY keyboard canlearn a ten-key input scheme as discussed above based on their knowledgeof the QWERTY keyboard. In order to facilitate the learning process,several additional features can be provided.

In some implementations, if the user presses and holds a primary inputkey for a predetermined amount of time (e.g., one full second, which islong enough to generate a string of repeated characters on a standardkeyboard), a set of output characters (letters, punctuation, function,digraphs, trigraphs, words etc.) is presented that can be produced usingthe primary key and various combinations of other input keys (dependingon the user's subsequent input action). For example, if the user holdsdown Input Key 5 corresponding to the letter “n” (e.g., using the rightindex finger), a menu 1400 in FIG. 14A is displayed. The menu showspositions 1-8 corresponding to the eight Input Keys 1-8. In position 5,the letter “n” is shown corresponding to the input key, Input Key 5,that is being pressed. The other seven positions show the outputproduced by the chord that can be created with Input Key 5 and input keycorresponding with the respective position. For example, in position 1(corresponding to Input Key 1) the letter “q” is shown because “q” isthe output produced by the chord 51. In position 2 (corresponding toInput Key 2) the letter “J” is shown because “J” is the output producedby the by the chord 52.

In this intermediate state, when a single key is held down, a memorybuffer stores a numeric INPUT field value for the original input keythat was activated (e.g., INPUT field value of 5). If the user releasesthe pressing of the original input key (e.g., Input Key 5) withoutfurther action, the INPUT field value is translated into itscorresponding output (e.g., “N”). However, if before releasing theoriginal input key (Input Key 5), the user presses and releases anotherinput key (e.g., Input Key 1), the resulting output will consist of theappropriate chord for the pair of keys (Input Key 1 and Input Key 5)that was pressed (i.e., “q”).

If the user holds down a pair of keys such as Input Key 5 and Input Key4, a similar menu 1401 is displayed in FIG. 14B that shows the possiblethree-key chords that begin with Input Key 5 followed by and Input Key4. Also, the corresponding outputs for the three-key chords aredisplayed. For example, in position 1 a “ba” is displayed whichrepresents the output that will result if the chord 541 (one of the“eastern” versions of input code 145) is pressed and released.

If three keys are pressed down such as Input Keys 5, 4, and 6, anadditional menu 1402 is displayed in FIG. 14C showing the possiblefour-key chords that begin with the input keys 5, 4, and 6. Also, thecorresponding outputs for the three-key chords are displayed. Forexample, in position 3 the word “the” is displayed. The word “the” isoutput in response to the chord 5463 (one of the “eastern” versions ofinput code 3456) being pressed and released. Further menus can bedisplayed as further input keys are pressed while the other previouspressed input keys are held down (e.g., for five-key chords, six-keychords, etc.)

In some implementations, a map, autocorrect features, and stenographiccombinations can be calibrated to a particular user based on the userstyping habits on a QWERTY keyboard and allow for semi-ambiguouscorrection of words where chords are not fully utilized to properlyenter text. The calibration can be performed based on which finger isused by the user to strike each key on a QWERTY keyboard.

For example, although the letters on the top and middle rows of a QWERTYkeyboard are ‘universal’ and almost all users will strike these keyswith the same fingers (e.g., left pinky for Q and A, left ring for W andS, etc.), approximately half of keyboard users strike the letters on theleft hand side of the bottom row (letters Z, X, C, V, and B)differently. As such, a map for translating inputs to outputs canreflect the user's particular preference for entering these letters.

FIG. 15A and FIG. 15B show example key calibration maps. The FIG. 15Arepresents the map 1500 according to a traditional typing scheme that istaught to novice typists on a QWERTY keyboard; FIG. 15B shows a map 1501that is similar to map 1500 but differs in some respects: for example,the Z, X, and C keys are shifted over, the B key is pressed by the righthand index finger instead of the left. In both examples, the ASETNIOPletters are considered to be “primary” letters and are unambiguous interms of their output, while the additional letters of the alphabet areconsidered to be “secondary” and semi-ambiguous; they are considered ifa word built using the primary letters is not recognized in a word list(e.g., a list of English words found in an in English dictionary).

The calibration can be performed by obtaining a list of which fingers0-9 the user uses to input the various letters on a QWERTY keyboard.This list can be obtained, for example, by prompting the user to entereach letter in the alphabet (A through Z) without moving their fingersaway from the home keys, thus training the computer which finger theyuse for each letter. On a ten-key input device, the user can enter eachletter without moving his/her fingers away from the Input Keys 0-9. Insome examples, a user can type a passage with various characters using aset of gloves equipped with sensors to sense when the user is pressingand releasing.

Once it is known which fingers are used to strike each letter of thealphabet (e.g., a particular user might use the left pinky, whichcorresponds to a code of 1, to strike Q, A, and Z; the left ring finger,which corresponds to a code of 2, to strike W, S, and X, and so forth) adatabase can be built with all the potential combinations of words basedon the combinations of Input Keys 0-9 and Fingers 0-9 that correspond tothese characters and functions typed with those fingers.

In some examples, the map 300 above can be supplemented with possiblecombinations that a user might naturally type based on his/her typinghabits on the QWERTY keyboard. For example, an input code for the word‘who’ is ‘12-56-7’ using map 300 above. This input code corresponds to achord 12 for W, chord 56 for H, and a single action input with input key7 for 0. On a traditional QWERTY keyboard, most users strike the W keywith their left ring finger (which corresponds to input code 2), andstrike the H key with their right index finger (which corresponds toinput code 5). In order to compensate for other possible ways a usermight enter letters with an intended output of the word ‘who’, thepartially chorded input codes of ‘2-56-7’ and ‘12-5-7’ and the unchordedinput code of ‘2-5-7’ can be added to the map 300 for the word ‘who’.

FIG. 16 shows a process 1600 for identifying an alternative word for anincorrectly or ambiguously typed word. At 1610, an input code isreceived from a user using a ten-key input device for a word. At 1620, aspace input (e.g., Input Key 0) or a punctuation character is receivedindicating the end of a word. At 1630, the input code is translated intoa potential output word that contains the letters as typed according toa map such as map 300. At 1640, the potential output word is looked upin a word list (e.g., a list of English words found in an in Englishdictionary), and it is determined whether the potential output word hasbeen typed correctly and is recognizable as a word or has been typedincorrectly or ambiguously and does not correspond directly to arecognizable word. If the word is found in the word list then the wordis produced for further output or processing at 1650 such as for displayon an output device. For example, if input code is 0-14-7-57-34-0 isreceived then the translation (using map 300) at 1630 produces thepotential output word “four” bracketed by a pair of spaces. Because“four” is recognized as a word at 1640, the word “four” is produced forfurther output or processing at 1650.

If at 1640, the potential output word is not found in the dictionary,then the process proceeds to determine at 1660 potential alternativesbased on chords that a user may have failed to input. For example, ifthe input code is 4-7-5-4 followed by a space then the potential outputword “tont” is produced. The word “tont” is not found in the word list.Potential alternatives are identified at 1660. The alternatives aredetermined by analyzing chord combinations for each entry of the inputcode (e.g., input code 4-7-5-4) and comparing words for thosecombinations with the list of words. If only one potentially correctalternative is identified, that alternative can automatically replacethe incorrect word. However, some input codes can have multiplepotential alternatives. For example, the following chord combinationscan be identified for the input code 4-7-5-4 and the following wordscorresponding to those combinations are found in a list of Englishwords:

TABLE 13 Word Discrete Input Code Bout 45-7-57-4 Font 41-7-57-43 Four41-7-57-43 Gout 47-7-57-4 Rout 43-7-57-4 Tomb 4-7-58-45 Tour 4-7-57-43Tout 4-7-57-4 Bout 45-7-57-4

Each alternative input code listed above is a chorded combination of theoriginally received input code 4-7-5-4. At 1670, the determinedalternatives are presented. For example, the list of alternatives can bedisplayed in a user interface. At 1680, a selection of an alternative isreceived.

When two or more potential matches for an incorrectly typed word areencountered, a visual menu is opened that prompts the user to select theintended word. The visual menu provides the user an opportunity to learnthe correct chords for the secondary characters. An example of a menulisting potential alternatives (presented at 1680) is shown in FIG. 17.FIG. 17 shows an example of a menu 1700 for assisting a user inidentifying the intended output and for identifying the correct input toproduce that output. The menu 1700 shows eight alternatives for theincorrect word “tont” based on the input code 4-7-5-4. Also, inputpositions 1-8 are shown for each suggested alternative.

The menu 1700 shows a first column 1710 having a row for each of thepotential alternatives: ‘gout’, ‘tomb’, ‘bout’, ‘font’, ‘four’, ‘rout’,‘tout’, and ‘tour’. For each alternative, eight positions (position 1through position 8) corresponding to Input Keys 1-8 are shown in asecond column 1720. The letter that corresponds to the chord the usermust press to select the word is indicated by capitalizing the letter inthe word. In some examples, the suggested chord to select the menuoption can be emphasized with italicization, an underline, a differentcolor, bolding or the like. Also, positions of the eight positionsshowing the input keys for the chord for the menu selection arehighlighted. When in the menu 1700 the correct word can be selected byinputting the appropriate chord. For example, to select the word “gout”the user would press the chord for the letter “g” (input code 47).

In some examples, there are enough potential words that the number ofchords and primary character that are available to select a menu optionare exhausted. For example, the text entry TATE (input code 4-1-4-3)corresponds to as many as thirteen different words (depending whether acalibration has been received to include input codes for the letter “C”for a user who strikes the letter “C” with his/her left index finger).In such an example, the user can be prompted to enter one of severalsub-menus to select the intended word. The potential alternativespresented in each sub-menu can be grouped based on the first letter ineach word or some other process that reduces the number of menu optionsto a manageable number.

Providing a menu listing potential alternatives in this manner helps auser learn mistyped chords (e.g., failing to include all of the inputkeys for the chord) by having the user input the mistyped chord toselect the correct alternative. Words that include only primarycharacters (i.e., ‘neat’) will be recognized as words and will not opena menu even when other combinations are available (heat’, ‘hear). Thisis in order to maximize speed for proficient typists.

In some implementations, a word a user is inputting can be predictedbased on known combinations of input keys that will output known words.A list of words such as a dictionary database can be used to considerpartial words—i.e., words that have not been ‘closed’ through theaddition of a space to the end of the word. For example, system 900 inFIG. 9 can be used to do predictive typing using a ten-key input device910. The system 900 can include a dictionary database stored in memory921. The computing device 920 can analyze an input code as it isreceived and can determine a likely output based on word frequency. Thedetermined likely output can be displayed on display device 930. As theinput code is added to, the likely output can change and the visualoutput at the display device 930 can be changed accordingly. Thispredictive typing feature can be calibrated as above for individualusers to reflect their preference for certain keys for certain words(e.g., the left ring finger (Input Key 2) for the letter “Z”).

For example, if the user inputs the letter “A” (via Input Key 1)followed by inputting the letter “N” (via Input Key 5), the computingdevice can determine that Input Key 1 can map to letters of any of thekeys that are normally struck on a QWERTY keyboard with the leftpinky—letters “Q”, “A”, or “Z”, and can determine that Input Key 5 canmap to letters of any of the keys that are normally struck by the rightindex finger—“Y”, “U”, “H”, “J”, “N”, or “M”. Of the possiblecombinations of these letters—“QU”, “QH” “QJ” “QN”, “QM” “AU”, “AH”,“AJ”, “AN”, “AM”, “ZU” “ZH”, “ZJ” “ZN”, “ZM”) only four are either wordsor potentially part of words (QU, AH, AN, AM, ZU). The most common wordthat begins with any of these combinations of letters is ‘and’ (thethird most common word in written English). Consequently, the computingdevice 920 can display the letters “an” on display device 930 becausethe entry is recognized in the dictionary database and consists only ofprimary characters. If the user then enters a space by pressing InputKey 0, the word “an” is selected. If the user subsequently presses InputKey 3 (left ring finger), the expected output of “and” will bedisplayed. If the user presses the space bar (Input Key 0), the word“and” is selected, because it is the only combination of the letterscorresponding to Input Keys 1 5, and 3 that builds an actualthree-letter word in an English dictionary.

However, if instead of entering a space, the user continues to pressletter keys (such as an additional Input Key 5 corresponding to theletter “n”) the computer will check to see if any words in thedictionary correspond to the new combination (for example, “anen” wouldbe converted to “anem” because “anemic” or “anemone” is the most likelyword the user intended to enter). If the user continues to enter letters(such as Input Key 2 corresponding to the letter “S”) and the partialword does not correspond to any entry in the dictionary, the computingdevice 920 can revert the originally input word—“anens”.

FIGS. 18A and 18B show a process 1800 for identifying an alternativeword for an incorrectly or ambiguously typed word. At 1803, an inputcode is received from a user using a ten-key input device that ends witha space input (e.g., Input Key 0) or a punctuation character thatindicates the end of a word. At 1806, the input code is translated intoa potential output word that contains the letters as typed according tothe map 300. At 1809, the potential output word is looked up in a wordlist (e.g., a list of English words found in an in English dictionary),and it is determined whether the potential output word has been typedcorrectly and is recognizable as a word or has been typed incorrectly orambiguously and does not correspond directly to a recognizable word. Ifthe word is found in the word list then the word is produced for furtheroutput or processing at 1812 such as for display on an output device.For example, if input code is 14-7-57-34-0 then the translation at 1806produces the potential output word “four”. Because “four” is recognizedas a word at 1809, the word “four” (followed by a space or otherpunctuation character, as entered) is produced for further output orprocessing at 1812.

If at 1809, the potential output word is not found in the dictionary,then the process proceeds to determine at 1815 potential alternativesbased on chords that a user may have failed to input. For example, ifthe input code is 4-7-5-4 followed by a space then the potential outputword “tont” is produced. The word “tont” is not found in the word list.Potential alternatives are identified at 1815 by comparing the inputcode with entries in a dictionary database. The dictionary database ispopulated by considering all of the potential ways a user might typeeach word in the word list based on the user preference map that wasdetermined during a calibration mapping process. For example, to typethe word “tour” the proper (unambiguous) input code would be 4-7-57-43,but other potential input codes of 4-7-5-43, 4-7-57-4, and 4-7-5-4 mightalso indicate the user intended to produce this word. These potentialinput codes are determined for every word in the word list.

If the input code does not correspond to any of the potential alternatewords in the dictionary database at 1818, the output for the potentialoutput word (exactly as typed) is produced at 1820. This will oftenoccur for proper names and places and acronyms that are not normallyfound in a standard dictionary and thus will not interrupt the typingprocess. If the input code corresponds to one potentially correctalternative at 1821, the alternative replaces the ambiguously enteredword at 1824. However, some input codes can have multiple potentialalternatives and the list of alternate words is populated at 1827. Forexample, the following chord combinations can be identified for theinput code 4-7-5-4 and the following words corresponding to thosecombinations are found in a list of English words:

TABLE 14 Word Proper Input Code Bout 45-7-57-4 Font 41-7-57-43 Four41-7-57-43 Gout 47-7-57-4 Rout 43-7-57-4 Tomb 4-7-58-45 Tour 4-7-57-43Tout 4-7-57-4 Bout 45-7-57-4

Each alternative input code listed above is a chorded combination of theoriginally received input code 4-7-5-4. At 1830 the process determinesall of the available menu buttons that are available for the user toselect as an indication for their choice of the alternate words. For theabove example, the menu buttons that are available are B, F, G, M, N, O,R, T, and U (all of the unique letters that are found in the alternateoutput words). At 1833 these output buttons are sorted into twogroups—chords (any of the available letters that are formed using atwo-key chord) and primary keys (any of the letters that are formedusing the primary ASETNIOP home keys). At 1836 each group of menubuttons is sorted alphabetically. In the above example, the menu buttonswould be sorted into the following groups: B, F, G, M, R, and U forchords, and N, 0, and T for primary characters.

At 1839 the potential menu buttons are used to populate the menu buttonsfield. The menu options cycle, which determines which alternate outputword is associated with which menu button, begins at 1842. The processthen continues stepwise considering each of the buttons in the menubuttons field with the remaining list of alternate output words; itcycles through 1845 for each of the menu buttons.

In the above example, the cycle would begin by first considering themenu button B at 1848. At 1851, it is determined that this button is notunique to any of the words in the alternate output words field (both“tomb” and “bout” contain this letter), so it returns to 1845, where itis determined that the menu options cycle is not complete (only one ofthe nine potential menu buttons has been considered thus far).Similarly, for the next potential menu button F that is considered at1848 is not unique to any of the words in the alternate output wordsfield (both “font” and “four” contain this letter) so the processreturns to 1845 again.

The next potential menu button G is considered at 1848 and it isdetermined at 1851 that only one of the alternate words, “gout” containsthis letter. The menu button G is assigned to the alternate word “gout”at 1854. G is removed from the list of potential menu buttons and “gout”is removed from the list of alternate words at 1857. At 1860 it isrecognized that the menu is not fully populated (the menu buttons fieldcontains B, F, M, R, U, N, 0 and T and the alternate output fields wordcontains “bout,” “font”, “four,” “rout,” “tomb,” “tour,” and “tout”) andthe cycle begins again at 1845.

Continuing the above example, the menu button B once again passes unusedthrough the cycle because “tomb” and “bout” are both still available inthe alternate output words field (proceeding through steps 1848, and1851 and returning to 1845). The same occurs for the menu button F,because “font” and “four” are both still available. The next menu buttonM is considered at 1848. This menu button is found to be unique to theword “tomb” at 1851, so the combination of M and “tomb” is assigned at1854 and removed from the appropriate fields at 1857 and the cyclebegins again.

At 1848, the menu button B is considered again. This time, since “tomb”has been assigned to the letter M and has been removed from thealternate output words field, the letter B is unique to the word “bout”.This combination is paired at 1854 and 1857 and the remaining menubuttons (F, R, U, N, 0, and T) and alternate words (“font”, “four”,“rout,” “tour”, and “tout”) are considered at 1845.

Continuing the above example, the menu buttons F, R, and U pass unusedthrough the cycle because none of them are unique to the remaining words(proceeding through steps 1848, and 1851 and returning to 1845 for atotal of three cycles). The next menu button N is considered at 1848.This menu button is found to be unique to the word “font” at 1851, sothe combination of N and “font” is assigned at 1854 and removed from theappropriate fields at 1857 and the cycle begins again.

At 1848, the menu button F is considered again. This time, since “font”has been assigned to the letter N and has been removed from thealternate output words field, the letter F is unique to the word “four”.This combination is paired at 1854 and 1857 and the remaining menubuttons (R, U, 0, and T) and alternate words (“rout,” “tour”, and“tout”) are considered at 1845.

None of these menu buttons are unique to the remaining words, so themenu options cycle proceeds four times (considering each of theremaining menu buttons and finding no unique alternate words for any).Once the menu options cycle is complete at 1845, the process once againconsiders the next menu button R at 1863. The unique letter cycle beginsat 1864, and the next letter of the remaining alternate words isconsidered at 1866. For the first iteration of the cycle, the firstletter of each of the remaining alternate output words is considered; Rfor “rout,” T for “tour”, and T for “tout.” At 1869, it is determinedthat the menu button R is unique to the first letter of the word “rout”and this combination is assigned at 1854 and depopulated at 1857.

Since the menu has not yet been fully populated (“tour” and “tout”remain), the menu options cycle begins again at 1845 with the remainingmenu buttons U, 0, and T. Once again, these are not unique to either ofthe remaining words, so the menu options cycle is completed withoutresolution and the process shifts to the unique letter cycle at 1863. At1866 the cycle first considers the letter U and compares it to the firstletter of the remaining words at 1869 (T for “tour” and T for “tout”),but the letter is not unique to the first letter of the remaining words.Since the unique letter cycle is not complete (at 1872) the next letterof the alternate words is considered at 1866 (0 for “tour” and 0 for“tout”). Once all four words in the cycle have been considered, thecycle proceeds to 1863 and the next menu button 0 is considered. Onceagain, the cycle fails to deliver resolution, so the last menu button Tis considered. In the fourth cycle, when considering the fourth letterof each word (R for “tour” and T for “tout”) a unique match is finallymade, so the menu button T is assigned to the word “tout”.

During the final cycle, the next menu button U is associated with theword “tour” and the menu is determined to be fully populated at 1860.The menu options are then displayed at 1880 (as shown in FIG. 17).

Various ten-key input devices can be used with the ten-key inputtechniques described above. For example, a traditional QWERTY keyboardcan be used as a ten-key input device. Ten of the keys on the QWERTYkeyboard can be assigned as Input Keys 0-9. For example Input Keys 1-8can be assigned to “A”, “S”, “D”, “F”, “J”, “K”, “L”, and “;”. Input Key0 can be assigned to the space bar. And, Input Key 9 can be assigned toany or all of the V, C, B, N, or M keys.

In some implementations a glove can be worn that has sensors forreceiving typing input from the ten fingers on the right and left hands.For example, FIG. 19 shows a left glove 1920 and a right glove 1921 withfingers 0-9. Each finger has a pressure sensor (10 . . . 19) for sensinga press and a release on a surface with each finger. A single actioninput with finger 1 can be performed by pressing and releasing thefinger 1. A chord can be input by pressing two fingers simultaneouslyand then releasing one or both of the two fingers. In some examples,sensors 10-19 can be motion sensors (e.g., accelerometers) for detectingthe motion of the fingers. The left glove 1920 and the right glove 1921can be included in an astronaut suit, an underwater diving suit, or aradiation suit.

A ten-finger input device can be included on a right and left joystickwith keys or other sensors on the joysticks for receiving input fromeach of the ten fingers. For example, an airplane pilot yoke can beconfigured to receiving typing input from the ten fingers on the leftand right hands such as by pressure sensors. In some examples, a sensorcan be implanted on each of the fingers of the right and left hands todetect typing motion.

FIG. 20A shows a touchscreen device 2000. The touch screen device hasten areas, (area 0, area 1, . . . area 9) for receiving touch input fromeach of the ten fingers 0-9. Each of the ten areas can corresponding toan Input Key 0-9 described above. To provide input, a user can press andrelease on one or more of the ten areas. In some examples, the touchscreen can be configured to detect the ten areas. A user can be promptedto place his ten fingers on the touch screen. The touch screen can sensethe ten fingers and define an area for each of the ten fingers. Forexample, in FIG. 20A, each of the ten areas can be defined by the userplacing his ten fingers on the touch screen. [00188] In some examples,as the user types on the ten areas 0-9, the touch screen can sense driftin the ten fingers. For example, if the user begins to gradually shiftto the right with one or both hands, the touch screen can dynamicallyredefine the areas. FIG. 20B shows the ten areas 0-9 redefined as areas0′, 1′, 2′ . . . 9′ shifted to the right.

In some examples, each area recalibrates each time the user types withthe corresponding finger for that area. For example, the center of eachof the ten areas can be relocated to the center of a press received fromthe corresponding finger. Also, as one area for one hand begins todrift, other areas can drift in response because as one finger driftsthe other fingers on the same hand are likely to drift in the samedirection.

Ten finger input devices can be used in various contexts such as on asteering wheel, operating equipment, weapons, television remote, etc. Insome examples, an infrared device can use an infrared sensor for sensing3-d motion of the ten fingers. Typing motion can be performed on asurface or in space. The infrared sensor senses a downward movement of afinger with respect to the other fingers as a press and an input key isactivated. When the infrared sensor detects an upward movement of thefinger, the activation of the input key is released. Such an infraredsensor can be included on mobile device such as a cellular phone, a pda,a remote control, or the like.

FIGS. 21-44 show examples of several additional maps. A map 2100 and agraphical depiction 2200 are shown in FIG. 21 and FIG. 22, respectively,and are based on an original QWERTY layout, using ASDF and JKL; asprimary keys. Another example is a map 2300 and a graphical depiction2400, which are shown in FIG. 23 and FIG. 24, respectively, and use theletters AWDT and HIOP as the primary input keys. These are based on themost commonly used first letter of words; for example, W is not aparticularly common letter, but words that begin with W occur morefrequently than words that begin with S. Another example is a map 2500and a graphical depiction 2600, which are shown in FIG. 25 and FIG. 26,respectively, and are based on the Dvorak simplified keyboard layout,using the letters AEOU and HTNS as the primary keys. Another example isa map 2700 and a graphical depiction 2800 shown in FIG. 27 and FIG. 28,which includes alternate formulations of the X, K, exclamation point,apostrophe, and semicolon chords. Another example is a map 2900 and agraphical depiction 3000 shown in FIG. 29 and FIG. 30, which includes amap for less frequently used symbols.

In addition to the English alphabet, maps for other languages have alsobeen developed. An example is a map 3100 and a graphical depiction 3200shown in FIG. 31 and FIG. 32, which produce the upper-case letters ofthe Greek alphabet. Another example is a map 3300 and a graphicaldepiction 3400 shown in FIG. 33 and FIG. 34, which produce thelower-case letters of the Greek alphabet. Another example is a map 3500and a graphical depiction 3600 shown in FIG. 35 and FIG. 36, whichproduce the Cyrillic (Russian) alphabet. Another example is a map 3700and a graphical depiction 3800 shown in FIG. 37 and FIG. 38, whichproduce the Arabic alphabet. Another example is a map 3900 and agraphical depiction 4000 shown in FIG. 39 and FIG. 40, which produceJapanese characters. Another example is a map 4100 and a graphicaldepiction 4200 shown in FIG. 41 and FIG. 42, which produce Chinesecharacters. Another example is a map 4300 and a graphical depiction 4400shown in FIG. 43 and FIG. 44, which produce Korean characters.

Chord combinations for larger combinations (three keys or more) in allof the alternate layouts may be mapped based on the processes 700 and800.

Many European languages use diacritics (accent marks) to modify letters(ü, è, ĝ, etc.). In some implementations, unused or low-priority chordscan be reassigned to attach diacritics to previously typed letters. Inan example, the code 278 is not assigned to any digraphs or words, andcould be used to add the umlaut diacritic to a typed letter. Forexample, if the user enters the input code 14-57, which translates tothe text “fu” followed by the input code 278, an umlaut would be addedto the last letter in the text to produce “fü”. It is also possible toreassign some chord combinations to allow accented letters to beproduced directly; for example the input code 1278 could be reassignedto produce “ä”, the input code 2678 could be reassigned to produce “ö”,and the input code 2578 could be reassigned to produce “ü”. If thepreceding character is a space or other delimiter character, thediacritical mark would be produced as a separate character. Table 15shows potential input code assignments for some commonly useddiacritics. Input codes for diacritics can be assigned based on thechord assignments for individual languages; the digraphs, words, anddiacritics associated with a French dictionary and text sample, forexample, might be different from those associated with a Germandictionary and text sample. Diacritics may also be added as part of anautocorrect process; when a word is not recognized in a nativedictionary but a version of the word with a diacritic would berecognized, the word can be replaced with its correct form. For example,in a configuration that uses a German dictionary for the autocorrectprocess, the word “fullen” would not be recognized as a viable word, andwould be replaced with the correct form “füllen”.

TABLE 15 Potential Input Additional Input Code Diacritic Code AssignmentCommon Uses Assignments {umlaut over ( )} 278 ä ö ü ä - 1278 ö - 2678ü - 2578 {grave over ( )} 258 à è à - 1258 è - 2358 {acute over ( )} 248é é - 2348 ° 478 å å - 1478 , 378

 

 - 23478

 - 2378 {circumflex over ( )} 468 ĉ ĝ ĉ - 2468 ĝ - 4678 {hacek over ( )}237 {hacek over (g)} {hacek over (u)} {hacek over (g)} - 2347 {hacekover (u)} - 2357 ¹⁾ 178 l l - 1678 {dot over ( )} 128 ż ż - 1268 {tildeover ( )} 378 ñ ñ - 5678 Notes: ¹⁾Removes tittle from character

Implementations of the subject matter described in this specificationcan be implemented as one or more computer programs, i.e., one or moremodules of computer program instructions, encoded on a computer storagemedium for execution by, or to control the operation of, data processingapparatus. Alternatively or in addition, the program instructions can beencoded on an artificially generated propagated signal, e.g., amachine-generated electrical, optical, or electromagnetic signal that isgenerated to encode information for transmission to suitable receiverapparatus for execution by a data processing apparatus. A computerstorage medium can be, or be included in, a computer-readable storagedevice, a computer-readable storage substrate, a random or serial accessmemory array or device, or a combination of one or more of them.Moreover, while a computer storage medium is not a propagated signal, acomputer storage medium can be a source or destination of computerprogram instructions encoded in an artificially generated propagatedsignal. The computer storage medium can also be, or be included in, oneor more separate physical components or media (e.g., multiple CDs,disks, or other storage devices).

The operations described in this specification can be implemented asoperations performed by a data processing apparatus on data stored onone or more computer-readable storage devices or received from othersources. The term “data processing apparatus” encompasses all kinds ofapparatus, devices, and machines for processing data, including by wayof example a programmable processor, a computer, a system on a chip, ormultiple ones, or combinations, of the foregoing. The apparatus caninclude special purpose logic circuitry, e.g., an FPGA (fieldprogrammable gate array) or an ASIC (application specific integratedcircuit). The apparatus can also include, in addition to hardware, codethat creates an execution environment for the computer program inquestion, e.g., code that constitutes processor firmware, a protocolstack, a database management system, an operating system, across-platform runtime environment, a virtual machine, or a combinationof one or more of them. The apparatus and execution environment canrealize various different computing model infrastructures, such as webservices, distributed computing, and grid computing infrastructures.

A computer program (also known as a program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, declarative orprocedural languages, and it can be deployed in any form, including as astandalone program or as a module, component, subroutine, object, orother unit suitable for use in a computing environment. A computerprogram may, but need not, correspond to a file in a file system. Aprogram can be stored in a portion of a file that holds other programsor data (e.g., one or more scripts stored in a markup languagedocument), in a single file dedicated to the program in question, or inmultiple coordinated files (e.g., files that store one or more modules,sub programs, or portions of code). A computer program can be deployedto be executed on one computer or on multiple computers that are locatedat one site or distributed across multiple sites and interconnected by acommunication network.

The processes and logic flows described in this specification can beperformed by one or more programmable processors executing one or morecomputer programs to perform actions by operating on input data andgenerating output. The processes and logic flows can also be performedby, and apparatus can also be implemented as, special purpose logiccircuitry, e.g., an FPGA (field programmable gate array) or an ASIC(application specific integrated circuit).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read only memory ora random access memory or both. The essential elements of a computer area processor for performing actions in accordance with instructions andone or more memory devices for storing instructions and data. Generally,a computer will also include, or be operatively coupled to receive datafrom or transfer data to, or both, one or more mass storage devices forstoring data, e.g., magnetic, magneto optical disks, or optical disks.However, a computer need not have such devices. Moreover, a computer canbe embedded in another device, e.g., a mobile telephone, a personaldigital assistant (PDA), a mobile audio or video player, a game console,a Global Positioning System (GPS) receiver, or a portable storage device(e.g., a universal serial bus (USB) flash drive), to name just a few.Devices suitable for storing computer program instructions and datainclude all forms of nonvolatile memory, media and memory devices,including by way of example semiconductor memory devices, e.g., EPROM,EEPROM, and flash memory devices; magnetic disks, e.g., internal harddisks or removable disks; magneto optical disks; and CD ROM and DVD-ROMdisks. The processor and the memory can be supplemented by, orincorporated in, special purpose logic circuitry.

To provide for interaction with a user, implementations of the subjectmatter described in this specification can be implemented on a computerhaving a display device, e.g., a CRT (cathode ray tube) or LCD (liquidcrystal display) monitor, for displaying information to the user and akeyboard and a pointing device, e.g., a mouse or a trackball, by whichthe user can provide input to the computer. Other kinds of devices canbe used to provide for interaction with a user as well; for example,feedback provided to the user can be any form of sensory feedback, e.g.,visual feedback, auditory feedback, or tactile feedback; and input fromthe user can be received in any form, including acoustic, speech, ortactile input. In addition, a computer can interact with a user bysending documents to and receiving documents from a device that is usedby the user; for example, by sending web pages to a web browser on auser's client device in response to requests received from the webbrowser.

Implementations of the subject matter described in this specificationcan be implemented in a computing system that includes a back endcomponent, e.g., as a data server, or that includes a middlewarecomponent, e.g., an application server, or that includes a front endcomponent, e.g., a client computer having a graphical user interface ora Web browser through which a user can interact with an implementationof the subject matter described in this specification, or anycombination of one or more such back end, middleware, or front endcomponents. The components of the system can be interconnected by anyform or medium of digital data communication, e.g., a communicationnetwork. Examples of communication networks include a local area network(“LAN”) and a wide area network (“WAN”), an inter-network (e.g., theInternet), peer-to-peer networks (e.g., ad hoc peer-to-peer networks),wireless networks, mobile phone networks etc.

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other. In someimplementations, a server transmits data (e.g., an HTML page) to aclient device (e.g., for purposes of displaying data to and receivinguser input from a user interacting with the client device). Datagenerated at the client device (e.g., a result of the user interaction)can be received from the client device at the server.

A number of implementations have been described. Nevertheless, it willbe understood that various modifications may be made. In addition, othersteps may be provided, or steps may be eliminated, from the describedflows, and other components may be added to, or removed from, thedescribed systems. Accordingly, other implementations are within thescope of the following claims.

1. A system comprising: an input device comprising ten input elements;and a computing device coupled with the input device to receive an inputfrom one or more of the ten input elements, translate the received inputinto one or more letters of an alphabet based on a translation map thatmaps eight of the letters of the alphabet to eight of the ten inputelements respectively and that maps remaining letters of the alphabet tocombinations of the eight input elements, and produce the one or moreletters resulting from the translating for further processing or output.2. The system of claim 1, wherein the ten input elements correspond toten fingers on a right hand and a left hand; and wherein the map thatmaps the eight of the letters comprises a map that maps the eight of theletters to eight fingers of the ten fingers respectively, the eightfingers comprising four fingers of the right hand and four fingers ofthe left hand excepting thumbs.
 3. The system of claim 2, wherein thealphabet comprises the English alphabet with 26 letters; and whereineach of the eight letters comprise letters assigned on a QWERTY keyboardto each of the four fingers of the right hand and the four fingers ofthe left hand excepting thumbs respectively.
 4. The system of claim 3,wherein a space function is mapped to one of the input elementscorresponding to a thumb; and wherein a shift function is mapped to oneof the input elements corresponding to the other thumb.
 5. The system ofclaim 1, wherein the input comprises activations of different ones ofthe ten input elements, and the producing is responsive to adeactivation of any one of the activated input elements.
 6. The systemof claim 1, wherein the alphabet comprises the English alphabet with 26letters; wherein the remaining letters comprise 18 letters of theEnglish alphabet; wherein the ten input elements correspond to tenfingers on a right hand and a left hand; wherein the map that maps theremaining eighteen of the twenty-six letters of the English alphabet tocombinations of the eight input elements comprises a map that maps theremaining eighteen of the twenty-six letters to combinations of two ofeight fingers comprising four fingers of the right hand and four fingersleft hand excepting the thumbs; and wherein a finger of each of thecombinations comprises a finger mapped to one of the eighteen of thetwenty-six letters based on an association of the finger on a QWERTYkeyboard to the one of the eighteen of the twenty six letters.
 7. Thesystem of claim 1, wherein the computing device is configured to receivea chord from at least three different ones of the ten input elements,the one or more letters comprises at least a digraph, and thetranslating comprises translating based on an order in which at leasttwo of the at least three different input elements are activated.
 8. Thesystem of claim 7, wherein the chord corresponds to input fingers fromboth hands, the order indicates a first input finger from one hand forthe chord, and the translating comprises translating based on lettersassociated with the one hand on a QWERTY keyboard.
 9. The system ofclaim 7, wherein the computing device is configured to receive an inputcode having multiple input code blocks, including the chord, and thetranslating comprises: replacing a received chord block with alternativesinglet code blocks; replacing received singlet code blocks with analternative chord; and producing alternative outputs based on thealternative singlet code blocks and the alternative chord.
 10. Thesystem of claim 1, wherein the computing device is configured to switchto another map in response to a received input indicating the switch tothe other map, the other map mapping the ten input elements to numbers0-9.
 11. The system of claim 10, wherein the other map maps chordedinput from the ten input elements to symbols.